Part Number Hot Search : 
CNA1012K M62705 LY8893 TIPL761A 22CT9 CX6VSM1 W29N102C C4536
Product Description
Full Text Search
 

To Download C540U1 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
 C540U C541U
8-Bit CMOS Microcontroller
tp :/ Se /ww mw ic .s on ie du me ct ns or .d / e/
User's Manual 10.97
ht
C540U/C541U User's Manual Revision History : Previous Releases : Page (previous version) Page (new version)
1997-10-01 Original Version
Subjects (changes since last revision)
Edition 1997-10-01 Published by Siemens AG, Bereich Halbleiter, MarketingKommunikation, Balanstrae 73, 81541 Munchen (c) Siemens AG 1997. All Rights Reserved. Attention please! As far as patents or other rights of third parties are concerned, liability is only assumed for components, not for applications, processes and circuits implemented within components or assemblies. The information describes the type of component and shall not be considered as assured characteristics. Terms of delivery and rights to change design reserved. For questions on technology, delivery and prices please contact the Semiconductor Group Offices in Germany or the Siemens Companies and Representatives worldwide (see address list). Due to technical requirements components may contain dangerous substances. For information on the types in question please contact your nearest Siemens Office, Semiconductor Group. Siemens AG is an approved CECC manufacturer. Packing Please use the recycling operators known to you. We can also help you - get in touch with your nearest sales office. By agreement we will take packing material back, if it is sorted. You must bear the costs of transport. For packing material that is returned to us unsorted or which we are not obliged to accept, we shall have to invoice you for any costs incurred. Components used in life-support devices or systems must be expressly authorized for such purpose! Critical components1 of the Semiconductor Group of Siemens AG, may only be used in life-support devices or systems2 with the express written approval of the Semiconductor Group of Siemens AG. 1 A critical component is a component used in a life-support device or system whose failure can reasonably be expected to cause the failure of that life-support device or system, or to affect its safety or effectiveness of that device or system. 2 Life support devices or systems are intended (a) to be implanted in the human body, or (b) to support and/or maintain and sustain human life. If they fail, it is reasonable to assume that the health of the user may be endangered.
General Information C541U
Table of Contents 1 1.1 1.2 2 2.1 2.2 3 3.1 3.2 3.3 3.4 4 4.1 4.1.1 4.1.2 4.1.3 4.2 4.3 4.4 4.5 5 5.1 5.2 5.3 5.4 6 6.1 6.1.1 6.1.1.1 6.1.2 6.1.3 6.1.3.1 6.1.3.2 6.1.3.3 6.2 6.2.1 6.2.1.1 6.2.1.2 6.2.1.3 6.2.1.4 6.2.1.5 6.3 6.3.1
Page
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-1 Pin Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-4 Pin Definitions and Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-6 Fundamental Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-1 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-2 CPU Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-4 Memory Organization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-1 Program Memory, "Code Space" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2 Data Memory, "Data Space" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2 General Purpose Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2 Special Function Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-3 External Bus Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-1 Accessing External Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-1 Role of P0 and P2 as Data/Address Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-1 Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-3 External Program Memory Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-3 PSEN, Program Store Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-3 Overlapping External Data and Program Memory Spaces . . . . . . . . . . . . . . . . . . .4-3 ALE, Address Latch Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-4 Enhanced Hooks Emulation Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-5 Reset and System Clock Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-1 Hardware Reset Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-1 Fast Internal Reset after Power-On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-3 Hardware Reset Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-5 Oscillator and Clock Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-6 On-Chip Peripheral Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-1 Parallel I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-1 Port Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-2 Port 0 and Port 2 used as Address/Data Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-7 Alternate Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-8 Port Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-10 Port Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-10 Port Loading and Interfacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-11 Read-Modify-Write Feature of Ports 1,2 and 3 . . . . . . . . . . . . . . . . . . . . . . . . . . .6-12 Timers/Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-13 Timer/Counter 0 and 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-13 Timer/Counter 0 and 1 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-14 Mode 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-17 Mode 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-18 Mode 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-19 Mode 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-20 SSC Interface (C541U only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-21 General Operation of the SSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-22
Semiconductor Group
I-1
General Information C541U
Table of Contents 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.6.1 6.3.6.2 6.3.7 6.4 6.4.1 6.4.2 6.4.2.1 6.4.2.2 6.4.2.2.1 6.4.2.2.2 6.4.2.3 6.4.3 6.4.4 6.4.5 6.4.6 6.4.6.1 6.4.6.2 6.4.6.3 6.4.7 6.4.7.1 6.4.7.2 6.4.7.3 6.4.8 6.4.9 6.4.10 6.4.10.1 6.4.10.2 7 7.1 7.1.1 7.1.2 7.1.3 7.2 7.3 7.4 7.5 8 8.1 8.1.1
Page
Enable/Disable Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-22 Baudrate Generation (Master Mode only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-23 Write Collision Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-23 Master/Slave Mode Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-24 Data/Clock Timing Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-25 Master Mode Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-25 Slave Mode Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-26 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-27 USB Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-32 Transfer Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-33 USB Memory Buffer Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-34 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-34 Single Buffer Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-35 USB Write Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-35 USB Read Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-37 Dual Buffer Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-40 USB Memory Buffer Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-47 USB Memory Buffer Address Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-48 Initialization of USB Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-49 Control Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-51 Setup Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-51 Data Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-51 Status Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-51 Register Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-52 Global Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-53 Device Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-57 Endpoint Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-64 On-Chip USB Transceiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-73 Detection of Connected Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-75 Detach / Attach Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-76 Self-Powered Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-76 Bus-Powered Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-76 Interrupt System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-1 Interrupt Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-4 Interrupt Enable Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-4 Interrupt Request / Control Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-9 Interrupt Prioritiy Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-14 Interrupt Priority Level Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-15 How Interrupts are Handled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-16 External Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-18 Interrupt Response Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-20 Fail Safe Mechanisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-1 Programmable Watchdog Timer (C541U only) . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-1 Input Clock Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-2
Semiconductor Group
I-2
General Information C541U
Table of Contents 8.1.2 8.1.3 8.1.4 8.1.5 8.2 8.2.1 8.2.2 9 9.1 9.1.1 9.1.2 9.2 9.2.1 9.2.2 9.2.2.1 9.2.2.2 10 10.1 10.2 10.3 10.4 10.4.1 10.4.2 10.5 10.6 10.7 10.8 11 11.1 11.2 11.3 11.4 11.5 11.6 11.7 12
Page
Watchdog Timer Control / Status Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-3 Starting the Watchdog Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-4 Refreshing the Watchdog Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-4 Watchdog Reset and Watchdog Status Flag . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-4 Oscillator Watchdog Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-5 Functionality of the Oscillator Watchdog Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-6 Fast Internal Reset after Power-On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-7 Power Saving Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-1 Idle Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-3 Entering Idle Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-4 Exit from Idle Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-4 Power Down Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-5 Entering Power Down Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-6 Exit from Power Down Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-7 Exit via Pin P3.2/INT0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-8 Exit via UBS Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-8 OTP Memory Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-1 Programming Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-1 Pin Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-2 Pin Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-4 Programming Mode Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-6 Basic Programming Mode Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-6 OTP Memory Access Mode Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-7 Program / Read OTP Memory Bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-8 Lock Bits Programming / Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-10 Access of Version Bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-12 OTP Verify with Protection Level 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-13 Device Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-1 Absolute Maximum Ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-1 DC Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-2 AC Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-4 AC Characteristics of Programming Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-12 OTP Verification Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-16 USB Transceiver Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-17 Package Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-20 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-1
Semiconductor Group
I-3
Introduction C540U / C541U
1
Introduction
The C540U and C541U are members of the Siemens C500 family of 8-bit microcontrollers They are fully compatible to the standard 80C51 architecture. The C540U/C541U especially provide an on-chip USB module compliant to the USB specification, which is capable to operate either in low or full speed mode. The five endpoints can be easily controlled by the CPU via special function registers. Due to the on-chip USB transceiver circuits the C540U/C541U can be directly connected to the USB bus. Figure 1-1 shows the different functional units of the C540U/C541U and figure 1-2 shows the simplified logic symbol of the C540U/C541U.
On-Chip Emulation Support Module
Oscillator Watchdog
Watchdog Timer SSC T0
RAM 256 x 8
Port 0
I/O
Port 1 CPU
I/O
Power Saving Modes
USB Module USB Transceiver D+ D-
T1 OTP Prog. Memory C540U : 4 k x 8 C541U : 8 k x 8
Port 2
I/O
Port 3
I/O
The shaded units are not available in the C540U.
MCA03373
Figure 1-1 C540U/C541U Functional Units
Semiconductor Group
1-1
1997-10-01
Introduction C540U / C541U
Listed below is a summary of the main features of the C541U :
* * * *
* * *
* *
*
* * * * * * *
Enhanced 8-bit C500 CPU - Full software/toolset compatible to standard 80C51/80C52 microcontrollers 12 MHz external operating frequency - 500 ns instruction cycle Built-in PLL for USB synchronization On-chip OTP program memory - C540U : 4K byte - C541U : 8K byte - Alternatively up to 64K byte external program memory - Optional memory protection Up to 64K byte external data memory 256 byte on-chip RAM Four parallel I/O ports - P-LCC-44 package : three 8-bit ports and one 6-bit port - P-SDIP-52 package : four 8-bit ports - LED current drive capability for 3 pins (10 mA) Two 16-bit timer/counters (C501 compatible) On-chip USB module - Compliant to USB specification - Full speed or low speed operation - Five endpoints : one bidirectional control endpoint four versatile programmable endpoints - Registers are located in special function register area - On-chip USB transceiver SSC synchronous serial interface (SPI compatible) (only C541U) - Master and slave capable - Programmable clock polarity / clock-edge to data phase relation - LSB/MSB first selectable - 1.5 MBaud transfer rate at 12 MHz operating frequency 7 interrupt sources (2 external, 5 internal with 2 USB interrupts) selectable at 2 priority levels Enhanced fail safe mechanisms - Programmable watchdog timer (only C541U) - Oscillator watchdog Power saving modes - idle mode - software power down mode with wake-up capability through INT0 pin or USB On-chip emulation support logic (Enhanced Hooks Technology TM) P-LCC-44 and P-SDIP-52 packages Power supply voltage range : 4.0V to 5.5V Temperature Range : SAB-C540U TA = 0 to 70 C SAB-C541U TA = 0 to 70 C
Semiconductor Group
1-2
1997-10-01
Introduction C540U / C541U
V CC
V SS
XTAL2 XTAL1 ALE PSEN EA RESET D+ DC540U C541U
Port 0 8-Bit Digital I / O Port 1 P-LCC-44 : 6-Bit Digital I / O P-SDIP-52 : 8-Bit Digital I / O Port 2 8-Bit Digital I / O Port 3 8-Bit Digital I / O
MCL03374
Figure 1-2 Logic Symbol
Semiconductor Group
1-3
1997-10-01
Introduction C540U / C541U
1.1
Pin Configuration
This section describes the pin configrations of the C540U/C541U in the P-LCC-44 and P-SDIP-52 packages.
P1.1 / LED1 P1.0 / LED0 DD+ V SSU V CCU P1.5 / SLS P0.0 / AD0 P0.1 / AD1 P0.2 / AD2 P0.3 / AD3 6 5 4 3 2 1 44 43 42 41 40 P1.2 / SCLK V CC V SS RESET P3.0 / LED2 P1.3 / SRI P3.1 / DADD P3.2 / INT0 P3.3 / INT1 P3.4 / T0 P3.5 / T1 7 8 9 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 31 30 29 P0.4 / AD4 P0.5 / AD5 P0.6 / AD6 P0.7 / AD7 EA P1.4 / STO ALE PSEN P2.7 / A15 P2.6 / A14 P2.5 / A13
C540U C541U
18 19 20 21 22 23 24 25 26 27 28 P3.6 / WR P3.7 / RD XTAL2 XTAL1 V SS V CC P2.0 / A8 P2.1 / A9 P2.2 / A10 P2.3 / A11 P2.4 / A12 This pin functionality ist not available for the C540U.
MCP03343
Figure 1-3 Pin Configuration P-LCC-44 Package (top view)
Semiconductor Group
1-4
1997-10-01
Introduction C540U / C541U
V CCU V SSU
D+ DN.C. N.C. P1.0 / LED0 P1.1 / LED1 P1.2 / SCLK
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27
N.C. P1.5 / SLS P0.0 / AD0 P0.1 / AD1 P0.2 / AD2 P0.3 / AD3 P0.4 / AD4 P0.5 / AD5 P0.6 / AD6 P0.7 / AD7 EA P1.4 / STO P1.7 ALE PSEN N.C. N.C. P2.7 / A15 P2.6 / A14 P2.5 / A13 P2.4 / A12 P2.3 / A11 P2.2 / A10 P2.1 / A9 P2.0 / A8 N.C.
MCP03344
V CC V SS
RESET P3.0 / LED2 P1.3 / SRI P1.6 P3.1 / DADD P3.2 / INT0 P3.3 / INT1 P3.4 / T0 P3.5 / T1 P3.6 / WR P3.7 / RD XTAL2 XTAL1
C540U C541U
V SS V CC
This pin functionality ist not available for the C540U.
Figure 1-4 Pin Configuration P-SDIP-52 Package (top view)
Semiconductor Group
1-5
1997-10-01
Introduction C540U / C541U
1.2
Pin Definitions and Functions
This section describes all external signals of the C541U with its function. Table 1-1 Pin Definitions and Functions Symbol D+ 3 Pin Numbers P-LCC-44 P-SDIP-52 3 I/O USB D+ Data Line The pin D+ can be directly connected to USB cable (transceiver is integrated on-chip). USB D- Data Line The pin D- can be directly connected to USB cable (transceiver is integrated on-chip). Port 1 is an 6-bit (P-LCC-44) or 8-bit (P-SDIP-52) quasibidirectional I/O port with internal pullup resistors. Port 1 pins that have 1's written to them are pulled high by the internal pullup resistors, and in that state can be used as inputs. As inputs, port 1 pins being externally pulled low will source current (I IL, in the DC characteristics) because of the internal pullup resistors. Port 1 also contains two outputs with LED drive capability as well as the four pins of the SSC (C541U only). The output latch corresponding to a secondary function must be programmed to a one (1) for that function to operate (except when used for the compare functions). The secondary functions are assigned to the port 1 pins as follows : P1.0 / LED0 LED0 output P1.1 / LED1 LED1 output P1.2 / SCLK SSC Master Clock Output / SSC Slave Clock Input (C541U only) P1.3 / SRI SSC Receive Input (C541U only) P1.4 / STO SSC Transmit Output (C541U only) P1.5 / SLS SSC Slave Select Inp. (C541U only) P1.6 (P-SDIP-52 only) P1.7 (P-SDIP-52 only) I/O*) Function
D-
4
4
I/O
P1.0 - P1.4
5 - 7, 7 - 9, 14, 41, I/O 12, 34, 44 51, 15, 40
5 6 7 12 34 44 - -
*) I = Input O = Output
7 8 9 13 41 51 15 40
Semiconductor Group
1-6
1997-10-01
Introduction C540U / C541U
Table 1-1 Pin Definitions and Functions Symbol RESET 10 Pin Numbers P-LCC-44
(cont'd) I/O*) Function I RESET A high level on this pin for the duration of two machine cycles while the oscillator is running resets the C540U/C541U. A small internal pulldown resistor permits power-on reset using only a capacitor connected to VCC . Port 3 is an 8-bit quasi-bidirectional I/O port with internal pullup resistors. Port 3 pins that have 1's written to them are pulled high by the internal pullup resistors, and in that state can be used as inputs. As inputs, port 3 pins being externally pulled low will source current (I IL, in the DC characteristics) because of the internal pullup resistors. Port 3 also contains the interrupt, timer, serial port and external memory strobe pins that are used by various options. The output latch corresponding to a secondary function must be programmed to a one (1) for that function to operate. The secondary functions are assigned to the pins of port 3, as follows: P3.0 / LED2 LED2 output P3.1 / DADD Device attached input P3.2 / INT0 External interrupt 0 input / timer 0 gate control input External interrupt 1 input / P3.3 / INT1 timer 1 gate control input P3.4 / T0 Timer 0 counter input P3.5 / T1 Timer 1 counter input P3.6 / WR WR control output; latches the data byte from port 0 into the external data memory P3.7 / RD RD control output; enables the external data memory XTAL2 is the output of the inverting oscillator amplifier. This pin is used for the oscillator operation with crystal or ceramic resonator.
P-SDIP-52 12
P3.0 - P3.7
11, 13 - 19 13, 16 - 22
I/O
XTAL2
20
23
-
*) I = Input O = Output
Semiconductor Group
1-7
1997-10-01
Introduction C540U / C541U
Table 1-1 Pin Definitions and Functions Symbol XTAL1 21 Pin Numbers P-LCC-44
(cont'd) I/O*) Function - XTAL1 is the input to the inverting oscillator amplifier and input to the internal clock generator circuits. To drive the device from an external clock source, XTAL1 should be driven, while XTAL2 is left unconnected. Minimum and maximum high and low times as well as rise/fall times specified in the AC characteristics must be observed. Port 2 is an 8-bit quasi-bidirectional I/O port with internal pullup resistors. Port 2 pins that have 1's written to them are pulled high by the internal pullup resistors, and in that state can be used as inputs. As inputs, port 2 pins being externally pulled low will source current (I IL, in the DC characteristics) because of the internal pullup resistors. Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX @DPTR). In this application it uses strong internal pullup resistors when issuing 1's. During accesses to external data memory that use 8-bit addresses (MOVX @Ri), port 2 issues the contents of the P2 special function register. The Program Store Enable output is a control signal that enables the external program memory to the bus during external fetch operations. It is activated every six oscillator periods except during external data memory accesses. The signal remains high during internal program execution. The Address Latch enable output is used for latching the address into external memory during normal operation. It is activated every six oscillator periods except during an external data memory access.
P-SDIP-52 24
P2.0 - P2.7
24 - 31
28 - 35
I/O
PSEN
32
38
O
ALE
33
39
O
*) I = Input O = Output
Semiconductor Group
1-8
1997-10-01
Introduction C540U / C541U
Table 1-1 Pin Definitions and Functions Symbol EA 35 Pin Numbers P-LCC-44
(cont'd) I/O*) Function I External Access Enable When held high, the C540U/C541U executes instructions from the internal ROM as long as the PC is less than 1000H for the C540U or less than 2000H for the C541U. When held low, the C540U/ C541U fetches all instructions from external program memory. For the C540U-L/C541U-L this pin must be tied low. Port 0 is an 8-bit open-drain bidirectional I/O port. Port 0 pins that have 1's written to them float, and in that state can be used as high-impedance inputs. Port 0 is also the multiplexed low-order address and data bus during accesses to external program and data memory. In this application it uses strong internal pullup resistors when issuing 1's. Supply voltage for the on-chip USB transceiver circuitry. Ground (0V) for the on-chip USB transceiver circuitry. Supply voltage for ports and internal logic circuitry during normal, idle, and power down mode. Ground (0V) for ports and internal logic circuitry during normal, idle, and power down mode.
P-SDIP-52 42
P0.0 - P0.7
44 - 36
50 - 43
I/O
VCCU VSSU VCC
1 2 8, 23
1 2 10, 26
- - -
VSS
9, 22
11, 25
-
*) I = Input O = Output
Semiconductor Group
1-9
1997-10-01
Introduction C540U / C541U
Semiconductor Group
1-10
1997-10-01
Fundamental Structure C540U / C541U
2
Fundamental Structure
The C540U/C541U is fully compatible to the architecture of the standard 8051/C501 microcontroller family. While maintaining the typical architectural characteristics of the C501, the C541U incorporates a SSC synchronous serial interface, a versatile USB module as well as some enhancements in the Fail Save Mechanism Unit. Functionally, the C540U is a subset of the C541U with a smaller OTP program memory and without the SSC interface and the watchdog timer. Figure 2-1 shows a block diagram of the C540U/C541U.
Oscillator Watchdog XTAL2 XTAL1 ALE PSEN EA RESET Progr. Watchdog Timer (C541U only) Timer 0 Timer 1 CPU OSC & Timing
RAM 256 x 8
OTP Memory 4k x 8 (C540U) 8k x 8 (C541U)
Emulation Support Logic Port 0 Port 0 8-Bit Digit. I/O Port 1 1) 6- / 8-Bit Digit. I/O Port 2 8-Bit Digit. I/O Port 3 8-Bit Digit. I/O
Port 1 SSC (SPI) Interface (C541U only) Transceiver PLL USB Module Port 2
D+ D-
Port 3
Interrupt Unit
1)
C540U C541U
MCB03345
P-LCC-44 : 6-Bit Port; P-SDIP-52 : 8-Bit Port
Figure 2-1 Block Diagram of the C540U/C541U
Semiconductor Group
2-1
1997-10-01
Fundamental Structure C540U / C541U
2.1
CPU
The CPU is designed to operate on bits and bytes. The instructions, which consist of up to 3 bytes, are performed in one, two or four machine cycles. One machine cycle requires six oscillator cycles (this number of oscillator cycles differs from other members of the C500 microcontroller family). The instruction set has extensive facilities for data transfer, logic and arithmetic instructions. The Boolean processor has its own full-featured and bit-based instructions within the instruction set. The C541U uses five addressing modes: direct access, immediate, register, register indirect access, and for accessing the external data or program memory portions a base register plus index-register indirect addressing. Efficient use of program memory results from an instruction set consisting of 44% one-byte, 41% two-byte, and 15% three-byte instructions. With a 12 MHz clock, 58% of the instructions execute in 500 ns. The CPU (Central Processing Unit) of the C540U/C541U consists of the instruction decoder, the arithmetic section and the program control section. Each program instruction is decoded by the instruction decoder. This unit generates the internal signals controlling the functions of the individual units within the CPU. They have an effect on the source and destination of data transfers and control the ALU processing. The arithmetic section of the processor performs extensive data manipulation and is comprised of the arithmetic/logic unit (ALU), an A register, B register and PSW register. The ALU accepts 8-bit data words from one or two sources and generates an 8-bit result under the control of the instruction decoder. The ALU performs the arithmetic operations add, substract, multiply, divide, increment, decrement, BDC-decimal-add-adjust and compare, and the logic operations AND, OR, Exclusive OR, complement and rotate (right, left or swap nibble (left four)). Also included is a Boolean processor performing the bit operations as set, clear, complement, jumpif-not-set, jump-if-set-and-clear and move to/from carry. Between any addressable bit (or its complement) and the carry flag, it can perform the bit operations of logical AND or logical OR with the result returned to the carry flag. The program control section controls the sequence in which the instructions stored in program memory are executed. The 16-bit program counter (PC) holds the address of the next instruction to be executed. The conditional branch logic enables internal and external events to the processor to cause a change in the program execution sequence.
Accumulator ACC is the symbol for the accumulator register. The mnemonics for accumulator-specific instructions, however, refer to the accumulator simply as A.
Program Status Word The Program Status Word (PSW) contains several status bits that reflect the current state of the CPU.
Semiconductor Group
2-2
1997-10-01
Fundamental Structure C540U / C541U
Special Function Register PSW (Address D0H) Bit No. MSB D7H D0H CY D6H AC D5H F0 D4H RS1 D3H RS0 D2H OV D1H F1
Reset Value : 00H LSB D0H P PSW
Bit CY AC F0 RS1 RS0
Function Carry Flag Used by arithmetic instruction. Auxiliary Carry Flag Used by instructions which execute BCD operations. General Purpose Flag Register Bank select control bits These bits are used to select one of the four register banks. RS1 0 0 1 1 RS0 0 1 0 1 Function Bank 0 selected, data address 00H-07H Bank 1 selected, data address 08H-0FH Bank 2 selected, data address 10H-17H Bank 3 selected, data address 18H-1FH
OV F1 P
Overflow Flag Used by arithmetic instruction. General Purpose Flag Parity Flag Set/cleared by hardware after each instruction to indicate an odd/even number of "one" bits in the accumulator, i.e. even parity.
B Register The B register is used during multiply and divide and serves as both source and destination. For other instructions it can be treated as another scratch pad register. Stack Pointer The stack pointer (SP) register is 8 bits wide. It is incremented before data is stored during PUSH and CALL executions and decremented after data is popped during a POP and RET (RETI) execution, i.e. it always points to the last valid stack byte. While the stack may reside anywhere in the on-chip RAM, the stack pointer is initialized to 07H after a reset. This causes the stack to begin a location = 08H above register bank zero. The SP can be read or written under software control.
Semiconductor Group
2-3
1997-10-01
Fundamental Structure C540U / C541U
2.2
CPU Timing
The C540U/C541U has no clock prescaler. Therefore, a machine cycle of the C540U/C541U consists of 6 states (6 oscillator periods). Each state is devided into a phase 1 half and a phase 2 half. Thus, a machine cycle consists of 6 oscillator periods, numbererd S1P1 (state 1, phase 1) through S6P2 (state 6, phase 2). Each state lasts one oscillator period. Typically, arithmetic and logic operations take place during phase 1 and internal register-to-register transfers take place during phase 2. The diagrams in figure 2-2 show the fetch/execute timing related to the internal states and phases. Since these internal clock signals are not user-accessible, the XTAL2 oscillator signals and the ALE (address latch enable) signal are shown for external reference. ALE is normally activated twice during each machine cycle: once during S1P2 and S2P1, and again during S4P2 and S5P1. Executing of a one-cycle instruction begins at S1P2, when the op-code is latched into the instruction register. If it is a two-byte instruction, the second reading takes place during S4 of the same machine cycle. If it is a one-byte instruction, there is still a fetch at S4, but the byte read (which would be the next op-code) is ignored (discarded fetch), and the program counter is not incremented. In any case, execution is completed at the end of S6P2. Figures 2-2 (a) and (b) show the timing of a 1-byte, 1-cycle instruction and for a 2-byte, 1-cycle instruction.
Semiconductor Group
2-4
1997-10-01
Fundamental Structure C540U / C541U
S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 OSC (XTAL2) ALE Read Opcode S1 S2 S3 S4 Read Next Opcode (Discard) S5 S6 Read Next Opcode Again
(a) 1-Byte, 1-Cycle Instruction, e. g. INC A Read Opcode S1 S2 S3 S4 Read 2nd Byte S5 S6 Read Next Opcode
(b) 2-Byte, 1-Cycle Instruction, e. g. ADD A #DATA Read Opcode S1 S2 S3 S4 Read Next Opcode (Discard) Read Next Opcode Again S4 S5 S6
S5
S6
S1
S2
S3
(c) 1-Byte, 2-Cycle Instruction, e. g. INC DPTR Read Opcode (MOVX) S1 S2 S3 S4 Read Next Opcode (Discard) S5 ADDR S6 S1 Read Next Opcode Again No Fetch No Fetch No ALE S2 DATA
MCD03287
S3
S4
S5
S6
(d) MOVX (1-Byte, 2-Cycle)
Access of External Memory
Figure 2-2 Fetch Execute Sequence
Semiconductor Group
2-5
1997-10-01
Fundamental Structure C540U / C541U
Semiconductor Group
2-6
1997-10-01
Memory Organization C540U / C541U
3
Memory Organization
The C540U/C541U CPU manipulates operands in the following four address spaces: - - - - - 8 or 4 KByte on-chip OTP program memory Totally up to 64 Kbyte internal/external program memory up to 64 Kbyte of external data memory 256 bytes of internal data memory a 128 byte special function register area
Figure 3-3 illustrates the memory address spaces of the C540U/C541U.
FFFF H
FFFF H
External External Indirect Addr. Internal RAM 2000 H 1) 1FFF H 1) Internal (EA = 1) External (EA = 0) 0000 H "Code Space" 0000 H "External Data Space" Internal RAM 00 H "Internal Data Space"
MCD03375
FF H
Direct Addr. Special Function Register
FF H
80 H 7F H
80 H
1) For the C504U the int. / ext. program memory boundary is at 0FFF H / 1000 H .
Figure 3-3 C540U/C541U Memory Map
Semiconductor Group
3-1
1997-10-01
Memory Organization C540U / C541U
3.1
Program Memory, "Code Space"
The C541U has 8 Kbyte (C540U : 4 Kbyte) of OTP program memory which can be externally expanded up to 64 Kbytes. If the EA pin is held high, the C541U executes program code out of the internal OTP program memory unless the program counter address exceeds 1FFFH (C540U : 0FFFH). Address locations 2000H through FFFFH (C540U : 1000H through 0FFFH) are then fetched from the external program memory. If the EA pin is held low, the C540U/C541U fetches all instructions from the external 64K byte program memory. 3.2 Data Memory, "Data Space"
The data memory address space consists of an internal and an external memory space. The internal data memory is divided into three physically separate and distinct blocks : the lower 128 bytes of RAM, the upper 128 bytes of RAM, and the 128 byte special function register (SFR) area. While the upper 128 bytes of data memory and the SFR area share the same address locations, they are accessed through different addressing modes. The lower 128 bytes of data memory can be accessed through direct or register indirect addressing; the upper 128 bytes of RAM can be accessed through register indirect addressing; the special function registers are accessible through direct addressing. Four 8-register banks, each bank consisting of eight 8-bit multi-purpose registers, occupy locations 0 through 1FH in the lower RAM area. The next 16 bytes, locations 20H through 2FH, contain 128 directly addressable bit locations. The stack can be located anywhere in the internal data memory address space, and the stack depth can be expanded up to 256 bytes. The external data memory can be expanded up to 64 Kbyte and can be accessed by MOVX instructions that use a 16-bit or an 8-bit address. Note :The registers of the USB module are accessed through special function registers in the SFR area. 3.3 General Purpose Registers
The lower 32 locations of the internal RAM are assigned to four banks with eight general purpose registers (GPRs) each. Only one of these banks may be enabled at a time. Two bits in the program status word, RS0 (PSW.3) and RS1 (PSW.4), select the active register bank (see description of the PSW in chapter 2). This allows fast context switching, which is useful when entering subroutines or interrupt service routines. The 8 general purpose registers of the selected register bank may be accessed by register addressing. With register addressing the instruction op code indicates which register is to be used. For indirect addressing R0 and R1 are used as pointer or index register to address internal or external memory (e.g. MOV @R0). Reset initializes the stack pointer to location 07H and increments it once to start from location 08H which is also the first register (R0) of register bank 1. Thus, if one is going to use more than one register bank, the SP should be initialized to a different location of the RAM which is not used for data storage.
Semiconductor Group
3-2
1997-10-01
Memory Organization C540U / C541U
3.4
Special Function Registers
The registers, except the program counter and the four general purpose register banks, reside in the special function register area. The special function register area consists of two portions: the standard special function register area and the mapped special function register area. One special function register of the C540U/C541U (PCON1) is located in the mapped special function register area. All other SFRs are located in the standard special function register area. For accessing PCON1 in the mapped special function register area, bit RMAP in special function register SYSCON must be set. Special Function Register SYSCON (Address B1H) Bit No. MSB 7 B1H - Reset Value : XX10XXXXB LSB 0 - SYSCON
6 -
5 EALE
4 RMAP
3 -
2 -
1 -
The functions of the shaded bits are not described in this section.
Bit RMAP
Function Special function register map bit RMAP = 0 : The access to the non-mapped (standard) special function register area is enabled. RMAP = 1 : The access to the mapped special function register area (PCON1) is enabled.
As long as bit RMAP is set, a mapped special function register can be accessed. This bit is not cleared by hardware automatically. Thus, when non-mapped/mapped registers are to be accessed, the bit RMAP must be cleared/set by software, respectively each. The registers, except the program counter and the four general purpose register banks, reside in the special function register area. All SFRs with addresses where address bits 0-2 are 0 (e.g. 80H, 88H, 90H, 98H, ..., F8H, FFH) are bitaddressable. The 75 special function registers (SFRs) in the SFR area include pointers and registers that provide an interface between the CPU and the other on-chip peripherals. The SFRs of the C540U/C541U are listed in table 3-2 and table 3-3. In table 3-2 they are organized in groups which refer to the functional blocks of the C540U/C541U. Table 3-3 illustrates the contents of the SFRs in numeric order of their addresses.
Semiconductor Group
3-3
1997-10-01
Memory Organization C540U / C541U
Table 3-2 Special Function Registers - Functional Blocks Block CPU Symbol ACC B DPH DPL PSW SP VR0 VR1 VR2 SYSCON IEN0 IEN1 IP0 IP1 ITCON P0 P1 P2 P3 TCON TH0 TH1 TL0 TL1 TMOD SSCCON STB SRB SCF SCIEN SSCMOD Name Accumulator B Register Data Pointer, High Byte Data Pointer, Low Byte Program Status Word Register Stack Pointer Version Register 0 Version Register 1 Version Register 2 System Control Register Interrupt Enable Register 0 Interrupt Enable Register 1 Interrupt Priority Register 0 Interrupt Priority Register 1 External Interrupt Trigger Condition Register Port 0 Port 1 Port 2 Port 3 Timer 0/1 Control Register Timer 0, High Byte Timer 1, High Byte Timer 0, Low Byte Timer 1, Low Byte Timer Mode Register SSC Control Register SSC Transmit Buffer SSC Receive Register SSC Flag Register SSC Interrupt Enable Register SSC Mode Test Register Watchdog Timer Control Register Watchdog Timer Reload Register Address Contents after Reset E0H 1) F0H 1) 83H 82H D0H 1) 81H FCH FDH FEH B1H A8H1) A9H B8H 1) B9H) 9AH 80H 1) 90H 1) A0H 1) B0H 1) 88H 1) 8CH 8DH 8AH 8BH 89H 93H 1) 94H 95H ABH 1) ACH 96H C0H 1) 86H 00H 00H 00H 00H 00H 07H C5H C1H YYH 3) XX10XXXXB 2) 0XXX0000B 2) XXXXX000B 2) XXXX0000B 2) XXXXX000B 2) XXXX1010B 2) FFH FFH FFH FFH 00H 00H 00H 00H 00H 00H 07H XXH 2) XXH 2) XXXXXX00B 2) XXXXXX00B 2) 00H XXXX0000B 2) 00H
Interrupt System
Ports
Timer 0 / Timer 1
SSC Interface (C541U only)
Watchdog WDCON (C541U WDTREL only)
1) Bit-addressable special function registers 2) "X" means that the value is undefined and the location is reserved 3) The content of this SFR varies with the actual of the step C540U/C541U (eg. 01H for the first step) 4) This SFR is located in the mapped SFR area. For accessing this SFR, bit RMAP in SFR SYSCON must be set.
Semiconductor Group
3-4
1997-10-01
Memory Organization C540U / C541U
Table 3-2 Special Function Registers - Functional Blocks (cont'd) Block Pow. Sav. Modes USB Module Symbol PCON PCON1 EPSEL USBVAL ADROFF GEPIR DCR DPWDR DIER DIRR FNRL FNRH EPBCn 1) EPBSn 1) EPIEn 1) EPIRn 1) EPBAn 1) EPLENn 1) Name Power Control Register Power Control Register 1 USB Endpoint Select Register USB Data Register USB Address Offset Register USB Global Endpoint Interrupt Request Reg. USB Device Control Register USB Device Power Down Register USB Device Interrupt Control Register USB Device Interrupt Request Register USB Frame Number Register, Low Byte USB Frame Number Register, High Byte USB Endpoint n Buffer Control Register USB Endpoint n Buffer Status Register USB Endpoint n Interrupt Enable Register USB Endpoint n Interrupt Request Register USB Endpoint n Base Address Register USB Endpoint n Buffer Length Register Address Contents after Reset 87H 88H 4) D2H D3H D4H D6H C1H C2H C3H C4H C6H C7H C1H C2H C3H C4H C5H C6H X00X0000B 2) 0XX0XXXXB 2) 80H 00H 00H 2) 00H 000X0000B 00H 00H 00H XXH 00000XXXB 00H 20H 00H 10H 3) 00H 0XXXXXXXB
1) These register are multiple registers (n=0-4) with the same SFR address; selection of register "n" is done by SFR EPSEL. 2) The reset value of ADROFF is valid only if USBVAL has not been read or written since the last hardware reset. 3) The reset value of EPIR0 is 11H.
Semiconductor Group
3-5
1997-10-01
Memory Organization C540U / C541U
Table 3-3 Contents of the SFRs, SFRs in numeric order of their addresses Addr Register Reset Bit 7 Value1) 80H 2) P0 81H 82H 83H 86H 4) 87H SP DPL DPH FFH 07H 00H .7 .7 .7 .7 WDT PSEL - TF1 Bit 6 .6 .6 .6 .6 .6 PDS TR1 Bit 5 .5 .5 .5 .5 .5 IDLS TF0 - M1 .5 .5 .5 .5 SLS MSTR .5 .5 0 - .5 - - - Bit 4 .4 .4 .4 .4 .4 - TR0 WS M0 .4 .4 .4 .4 STO CPOL .4 .4 0 - .4 - - - Bit 3 .3 .3 .3 .3 .3 GF1 IE1 - GATE .3 .3 .3 .3 SRI CPHA .3 .3 0 I1ETF .3 ET1 - - Bit 2 .2 .2 .2 .2 .2 GF0 IT1 - C/T .2 .2 .2 .2 SCLK BRS2 .2 .2 0 I1ETR .2 EX1 EUDI - Bit 1 .1 .1 .1 .1 .1 PDE IE0 - M1 .1 .1 .1 .1 LED1 BRS1 .1 .1 0 I0ETF .1 ET0 EUEI Bit 0 .0 .0 .0 .0 .0 IDLE IT0 - M0 .0 .0 .0 .0 LED0 BRS0 .0 .0 LSBSM I0ETR .0 EX0 ESSC
00H WDTREL 00H X00X0000B 00H 0XX0XXXXB 00H 00H 00H 00H 00H FFH
PCON
88H 2) TCON 88H
2) 3)
PCON1 TMOD TL0 TL1 TH0 TH1
EWPD - GATE .7 .7 .7 .7 .7 SCEN .7 .7 - .7 EA - - C/T .6 .6 .6 .6 .6 TEN .6 .6 - .6 - - -
89H 8AH 8BH 8CH 8DH
90H2) P1
93H 4) SSCCON 07H XXH 94H 4) STB 95H 9AH
4)
SRB
96H 4)
XXH SSCMOD 00H ITCON XXXX1010B FFH 0XXX0000B XXXXX000B XXXXXX00B
LOOPB TRIO
A0H2) P2 A8H2) IEN0 A9H IEN1
ABH SCF
4)
WCOL TC
1) X means that the value is undefined and the location is reserved 2) Bit-addressable special function registers 3) SFR is located in the mapped SFR area. For accessing this SFR, bit RMAP in SFR SYSCON must be set. 4) This SFR is only available in the C541U.
Semiconductor Group
3-6
1997-10-01
Memory Organization C540U / C541U
Table 3-3 Contents of the SFRs, SFRs in numeric order of their addresses (cont'd) Addr Register Reset Bit 7 Value1) ACH SCIEN
4)
Bit 6 - WR - - - -
Bit 5 - T1 EALE - - -
Bit 4 - T0 RMAP - - -
Bit 3 - INT1 - PT1 -
Bit 2 - INT0 - PX1 PUDI
Bit 1
Bit 0
XXXXXX00B FFH
- RD - - - -
WCEN TCEN DADD - PT0 PUEI LED2 - PX0 PSSC
4)
B0H2) P3 B1H
SYSCON XX10XXXXB XXXX0000B XXXX0000B XXXX0000B 00H
B8H2) IP0 B9H C0H
2)
IP1
WDCON
OWDS WDTS WDT
SWDT
C1H to C7H D0H
2)
USB Device and Endpoint Register definition see table 3-3 CY EPS7 .7
7)
PSW EPSEL
AC 0 .6 0 0 .6 .6 1 1 .6
F0 0 .5 AO5 0 .5 .5 0 0 .5
RS1 0 .4 AO4 EPI4 .4 .4 0 0 .4
RS0 0 .3 AO3 EPI3 .3 .3 0 0 .3
OV EPS2 .2 AO2 EPI2 .2 .2 1 0 .2
F1 EPS1 .1 AO1 EPI1 .1 .1 0 0 .1
P EPS0 .0 AO0 EPI0 .0 .0 1 1 .0
D2H D3H D4H
80H USBVAL 00H
ADROFF 00H D6H GEPIR 00H E0H2) ACC 00H F0H2) B 00H C5H C1H
6)
0 0 .7 .7 1 1 .7
FCH VR0
3) 5)
FDH VR1
3) 5)
FEH
3) 5)
VR2
1) X means that the value is undefined and the location is reserved 2) Bit-addressable special function registers 3) SFR is located in the mapped SFR area. For accessing this SFR, bit RMAP in SFR SYSCON must be set. 4) This SFR respectively bit is only available in the C541U. 5) These are read-only registers 6) The content of this SFR varies with the actual of the step C541U (e.g. 01H for the first step) 7) The reset value of ADROFF is valid only if USBVAL has not been read or written since the last hardware reset.
Semiconductor Group
3-7
1997-10-01
Memory Organization C540U / C541U
Table 3-4 Contents of the USB Device and Endpoint Registers (Addr. C1H to C7H) Addr Register Reset Value C1H DCR 000X. 0000B Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
EPSEL = 1XXX.XXXXB Device Registers
SPEED 0 SE0IE SE0I DA 0 DAIE DAI SWR 0 DDIE DDI SUSP 0 SBIE SBI DINIT 0 SEIE SEI RSM 0 STIE STI UCLK TPWD SUIE SUI PCLK RPWD SOFIE SOFI
C2H DPWDR 00H C3H DIER 00H C4H DIRR C5H reserved C6H FNRL C7H FNRH 00H
FNR7 XXH 0 0000. 0XXXB
FNR6 0
FNR5 0
FNR4 0
FNR3 0
FNR2 FNR10
FNR1 FNR9
FNR0 FNR8
EPSEL = 0XXX.X000B C1H EPBC0 C2H EPBS0 C3H EPIE0 C4H EPIR0 C5H EPBA0 00H 20H 00H 11H
Endpoint 0 Registers
STALL0 0 UBF0 AIE0 ACK0 CBF0 NAIE0 NACK0 0 L06 0 DIR0 RLEIE0 RLE0 0 L05 GEPIE0 ESP0 SOFDE0 INCE0 0 DBM0 SETRD0 SETWR0 CLREP0 DONE0 DNRIE0 NODIE0 EODIE0 SODIE0 DNR0 A06 L03 NOD0 A05 L02 EOD0 A04 L01 SOD0 A03 L00
- -
0 L04
PAGE0 00H C6H EPLEN0 0XXX. 0 XXXXB
C7H reserved EPSEL = 0XXX.X001B C1H EPBC1 C2H EPBS1 C3H EPIE1 C4H EPIR1 C5H EPBA1 00H 20H 00H 10H Endpoint 1 Registers
STALL1 0 UBF1 AIE1 ACK1 CBF1 NAIE1 NACK1 0 L16 0 DIR1 RLEIE1 RLE1 0 L15 GEPIE1 ESP1 SOFDE1 INCE1 0 DBM1 SETRD1 SETWR1 CLREP1 DONE1 DNRIE1 NODIE1 EODIE1 SODIE1 DNR1 A16 L13 NOD1 A15 L12 EOD1 A14 L11 SOD1 A13 L10
- -
0 L14
PAGE1 00H C6H EPLEN1 0XXX. 0 XXXXB
C7H reserved
Semiconductor Group
3-8
1997-10-01
Memory Organization C540U / C541U
Table 3-4 Contents of the USB Device and Endpoint Registers (Addr. C1H to C7H) (cont'd) Addr Register Reset Value EPSEL = 0XXX.X010B C1H EPBC2 C2H EPBS2 C3H EPIE2 C4H EPIR2 C5H EPBA2 00H 20H 00H 10H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Endpoint 2 Registers
STALL2 0 UBF2 AIE2 ACK2 CBF2 NAIE2 NACK2 0 L62 0 DIR2 RLEIE2 RLE2 0 L52 GEPIE2 ESP2 SOFDE2 INCE2 0 DBM2 SETRD2 SETWR2 CLREP2 DONE2 DNRIE2 NODIE2 EODIE2 SODIE2 DNR2 A62 L32 NOD2 A52 L22 EOD2 A42 L12 SOD2 A32 L02
- -
0 L42
PAGE2 00H C6H EPLEN2 0XXX. 0 XXXXB
C7H reserved EPSEL = 0XXX.X011B C1H EPBC3 C2H EPBS3 C3H EPIE3 C4H EPIR3 C5H EPBA3 00H 20H 00H 10H Endpoint 3 Registers
STALL3 0 UBF3 AIE3 ACK3 CBF3 NAIE3 NACK3 0 L63 0 DIR3 RLEIE3 RLE3 0 L53 GEPIE3 ESP3 SOFDE3 INCE3 0 DBM3 SETRD3 SETWR3 CLREP3 DONE3 DNRIE3 NODIE3 EODIE3 SODIE3 DNR3 A63 L33 NOD3 A52 L23 EOD3 A43 L13 SOD3 A33 L03
- -
0 L43
PAGE3 00H C6H EPLEN3 0XXX. 0 XXXXB
C7H reserved EPSEL = 0XXX.X100B C1H EPBC4 C2H EPBS4 C3H EPIE4 C4H EPIR4 C5H EPBA4 00H 20H 00H 10H Endpoint 4 Registers
STALL4 0 UBF4 AIE4 ACK4 CBF4 NAIE4 NACK4 0 L64 0 DIR4 RLEIE4 RLE4 0 L54 GEPIE4 ESP4 SOFDE4 INCE4 0 DBM4 SETRD4 SETWR4 CLREP4 DONE4 DNRIE4 NODIE4 EODIE4 SODIE4 DNR4 A64 L34 NOD4 A54 L24 EOD4 A44 L14 SOD4 A34 L04
- -4
0 L44
PAGE4 00H C6H EPLEN4 0XXX. 0 XXXXB
C7H reserved
Semiconductor Group
3-9
1997-10-01
Memory Organization C540U / C541U
Semiconductor Group
3-10
1997-10-01
External Bus Interface C540U / C541U
4
External Bus Interface
The C540U/C541U allows for external memory expansion. The functionality and implementation of the external bus interface is identical to the common interface for the 8051 architecture. 4.1 Accessing External Memory
It is possible to distinguish between accesses to external program memory and external data memory or other peripheral components respectively. This distinction is made by hardware: accesses to external program memory use the signal PSEN (program store enable) as a read strobe. Accesses to external data memory use RD and WR to strobe the memory (alternate functions of P3.7 and P3.6). Port 0 and port 2 (with exceptions) are used to provide data and address signals. In this section only the port 0 and port 2 functions relevant to external memory accesses are described. Fetches from external program memory always use a 16-bit address. Accesses to external data memory can use either a 16-bit address (MOVX @DPTR) or an 8-bit address (MOVX @Ri). 4.1.1 Role of P0 and P2 as Data/Address Bus When used for accessing external memory, port 0 provides the data byte time-multiplexed with the low byte of the address. In this state, port 0 is disconnected from its own port latch, and the address/ data signal drives both FETs in the port 0 output buffers. Thus, in this application, the port 0 pins are not open-drain outputs and do not require external pullup resistors. During any access to external memory, the CPU writes FFH to the port 0 latch (the special function register), thus obliterating whatever information the port 0 SFR may have been holding. Whenever a 16-bit address is used, the high byte of the address comes out on port 2, where it is held for the duration of the read or write cycle. During this time, the port 2 lines are disconnected from the port 2 latch (the special function register). Thus the port 2 latch does not have to contain 1s, and the contents of the port 2 SFR are not modified. If an 8-bit address is used (MOVX @Ri), the contents of the port 2 SFR remain at the port 2 pins throughout the external memory cycle. This will facilitate paging. It should be noted that, if a port 2 pin outputs an address bit that is a 1, strong pullups will be used for the entire read/write cycle and not only for two oscillator periods.
Semiconductor Group
4-1
1997-10-01
External Bus Interface C540U / C541U
a) S1 ALE
One Machine Cycle S2 S3 S4 S5 S6 S1
One Machine Cycle S2 S3 S4 S5 S6
PSEN RD PCH OUT INST. IN PCL OUT PCL OUT valid b) S1 ALE INST. IN PCL OUT PCL OUT valid PCH OUT INST. IN PCL OUT PCL OUT valid PCH OUT INST. IN PCL OUT PCL OUT valid PCH OUT INST. IN (A) without MOVX
P2
P0
One Machine Cycle S2 S3 S4 S5 S6 S1
One Machine Cycle S2 S3 S4 S5 S6
PSEN (B) with MOVX PCH OUT INST. IN PCL OUT PCL OUT valid INST. IN DPL or Ri valid DPH OUT OR P2 OUT DATA IN PCL OUT PCL OUT valid PCH OUT INST. IN
MCT03220
RD
P2
P0
Figure 4-1 External Program Memory Execution
Semiconductor Group
4-2
1997-10-01
External Bus Interface C540U / C541U
4.1.2 Timing The timing of the external bus interface, in particular the relationship between the control signals ALE, PSEN, RD, WR and information on port 0 and port 2, is illustated in figure 4-1 a) and b). Data memory: in a write cycle, the data byte to be written appears on port 0 just before WR is activated and remains there until after WR is deactivated. In a read cycle, the incoming byte is accepted at port 0 before the read strobe is deactivated.
Program memory: Signal PSEN functions as a read strobe. 4.1.3 External Program Memory Access The external program memory is accessed under two conditions: - - whenever signal EA is active (low); or - - whenever the program counter (PC) content is greater than 7FFFH When the CPU is executing out of external program memory, all 8 bits of port 2 are dedicated to an output function and must not be used for general-purpose I/O. The content of the port 2 SFR however is not affected. During external program memory fetches port 2 lines output the high byte of the PC, and during accesses to external data memory they output either DPH or the port 2 SFR (depending on whether the external data memory access is a MOVX @DPTR or a MOVX @Ri).
4.2
PSEN, Program Store Enable
The read strobe for external program memory fetches is PSEN. It is not activated for internal program memory fetches. When the CPU is accessing external program memory, PSEN is activated twice every instruction cycle (except during a MOVX instruction) no matter whether or not the byte fetched is actually needed for the current instruction. When PSEN is activated its timing is not the same as for RD. A complete RD cycle, including activation and deactivation of ALE and RD, takes 6 oscillator periods. A complete PSEN cycle, including activation and deactivation of ALE and PSEN, takes 3 oscillator periods. The execution sequence for these two types of read cycles is shown in figure 4-1 a) and b).
4.3
Overlapping External Data and Program Memory Spaces
In some applications it is desirable to execute a program from the same physical memory that is used for storing data. In the C540U/C541U the external program and data memory spaces can be combined by the logical-AND of PSEN and RD. A positive result from this AND operation produces a low active read strobe that can be used for the combined physical memory. Since the PSEN cycle is faster than the RD cycle, the external memory needs to be fast enough to adapt to the PSEN cycle.
Semiconductor Group
4-3
1997-10-01
External Bus Interface C540U / C541U
4.4
ALE, Address Latch Enable
The main function of ALE is to provide a properly timed signal to latch the low byte of an address from P0 into an external latch during fetches from external memory. The address byte is valid at the negative transition of ALE. For that purpose, ALE is activated twice every machine cycle. This activation takes place even if the cycle involves no external fetch. The only time no ALE pulse comes out is during an access to external data memory when RD/WR signals are active. The first ALE of the second cycle of a MOVX instruction is missing (see figure 4-1 b). Consequently, in any system that does not use data memory, ALE is activated at a constant rate of 1/6 of the oscillator frequency and can be used for external clocking or timing purposes. The C540U/C541U allows to switch off the ALE output signal. If the internal ROM is used (EA=1) and ALE is switched off by EALE=0, ALE will only go active during external data memory accesses (MOVX instructions) and code memory accesses with an address greater than 0FFFH for the C540U or greater than 1FFFH for the C541U (external code memory fetches). If EA=0, the ALE generation is always enabled and the bit EALE has no effect. After a hardware reset the ALE generation is enabled. Special Function Register SYSCON (Address B1H) Bit No. MSB 7 B1H - Reset Value : XX10XXXXB LSB 0 - SYSCON
6 -
5 EALE
4 RMAP
3 -
2 -
1 -
The function of the shaded bit is not described in this section. Bit - EALE Function Not implemented. Reserved for future use. Enable ALE output EALE = 0 : ALE generation is disabled; disables ALE signal generation during internal code memory accesses (EA=1). With EA=1, ALE is automatically generated at MOVX instructions and code memory accesses with an address greater 0FFFH (C540U) or greater 1FFFH. EALE = 1 : ALE generation is enabled If EA=0, the ALE generation is always enabled and the bit EALE has no effect on the ALE generation.
Semiconductor Group
4-4
1997-10-01
External Bus Interface C540U / C541U
4.5
Enhanced Hooks Emulation Concept
The Enhanced Hooks Emulation Concept of the C500 microcontroller family is a new, innovative way to control the execution of C500 MCUs and to gain extensive information on the internal operation of the controllers. Emulation of on-chip ROM based programs is possible, too. Each C500 production chip has built-in logic for the supprt of the Enhanced Hooks Emulation Concept. Therefore, no costly bond-out chips are necessary for emulation. This also ensures that emulation and production chips are identical. The Enhanced Hooks TechnologyTM 1), which requires embedded logic in the C500 allows the C500 together with an EH-IC to function similar to a bond-out chip. This simplifies the design and reduces costs of an ICE-system. ICE-systems using an EH-IC and a compatible C500 are able to emulate all operating modes of the different versions of the C500 microcontrollers. This includes emulation of ROM, ROM with code rollover and ROMless modes of operation. It is also able to operate in single step mode and to read the SFRs after a break.
ICE-System Interface to Emulation Hardware
SYSCON PCON TCON
RESET EA ALE PSEN
RSYSCON RPCON RTCON
EH-IC
C500 MCU
Optional I/O Ports
Port 0 Port 2
Enhanced Hooks Interface Circuit
Port 3
Port 1
RPort 2 RPort 0
TEA TALE TPSEN
Target System Interface
MCS02647
Figure 4-2 Basic C500 MCU Enhanced Hooks Concept Configuration Port 0, port 2 and some of the control lines of the C500 based MCU are used by Enhanced Hooks Emulation Concept to control the operation of the device during emulation and to transfer informations about the programm execution and data transfer between the external emulation hardware (ICE-system) and the C500 MCU.
1)
"Enhanced Hooks Technology" is a trademark and patent of Metalink Corporation licensed to Siemens.
Semiconductor Group
4-5
1997-10-01
External Bus Interface C540U / C541U
Semiconductor Group
4-6
1997-10-01
Reset / System Clock C540U / C541U
5 5.1
Reset and System Clock Operation Hardware Reset Operation
The hardware reset function incorporated in the C540U/C541U allows for an easy automatic startup at a minimum of additional hardware and forces the controller to a predefined default state. The hardware reset function can also be used during normal operation in order to restart the device. This is particularly done when the power down mode is to be terminated. Additional to the hardware reset, which is applied externally to the device, there are two internal reset sources, the watchdog timer (C541U only) and the oscillator watchdog. This chapter deals only with the external hardware reset. The RESET input is an active high input. An internal Schmitt trigger is used at the input for noise rejection. Since the reset is synchronized internally, the RESET pin must be held high for at least two machine cycles (12 oscillator periods) while the oscillator is running. With the oscillator running the internal reset is executed during the second machine cycle and is repeated every cycle until RESET goes low again. During reset, pins ALE and PSEN are configured as inputs and should not be stimulated or driven externally. (An external stimulation at these lines during reset activates several test modes which are reserved for test purposes. This in turn may cause unpredictable output operations at several port pins). At the RESET pin, a pulldown resistor is internally connected to VSS to allow a power-up reset with an external capacitor only. An automatic power-up reset can be obtained when VCC is applied by connecting the RESET pin to VCC via a capacitor. After VCC has been turned on, the capacitor must hold the voltage level at the reset pin for a specific time to effect a complete reset. The time required for a reset operation is the oscillator start-up time plus 2 machine cycles, which, under normal conditions, must be at least 10 - 20 ms for a crystal oscillator. This requirement is typically met using a capacitor of 4.7 to 10 F. The same considerations apply if the reset signal is generated externally (figure 5-1 b). In each case it must be assured that the oscillator has started up properly and that at least two machine cycles have passed before the reset signal goes inactive.
Semiconductor Group
5-1
1997-10-01
Reset / System Clock C540U / C541U
VCC
+
a) C540U C541U RESET
b) C540U C541U RESET
&
VCC
VCC
+
c) C540U C541U RESET
MCD03376
Figure 5-3 Reset Circuitries A correct reset leaves the processor in a defined state. The program execution starts at location 0000H. After reset is internally accomplished the port latches of ports 0 to 3 are set to FFH. This leaves port 0 floating, since it is an open drain port when not used as data/address bus. All other I/O port lines (ports 1 and 3) output a one (1). Port 2 lines output a zero (or one) after reset, if EA is held low (or high). The content of the internal RAM of the C540U/C541U is not affected by a reset. After power-up the content is undefined, while it remains unchanged during a reset if the power supply is not turned off. A reset operation of the USB module in the C540U/C541U can only be achieved under software control. A hardware reset operation puts only the internal CPU interface of the USB module and its MMU into a well defined reset state. The software reset, which must be executed after a hardware reset, is initiated by setting bit SWR in SFR DCR by software. Bit SWR is reset automatically by hardware when the software reset operation of the USB module is finished. Further, with the reset of bit SWR, bit DINIT in DCR is set indicating the CPU that it has to initialize the endpoints of USB module.
Semiconductor Group
5-2
1997-10-01
Reset / System Clock C540U / C541U
5.2
Fast Internal Reset after Power-On
The C540U/C541U uses the oscillator watchdog unit for a fast internal reset procedure after power-on. Figure 5-1 shows the power-on sequence under control of the oscillator watchdog. Normally the devices of the 8051 family do not enter their default reset states before the on-chip oscillator starts. The reason is that the external reset signal must be internally synchronized and processed in order to bring the device into the correct reset state. Especially if a crystal is used the start up time of the oscillator is relatively long (typ. 10 ms). During this time period the pins have an undefined state which could have severe effects especially to actuators connected to port pins. In the C540U/C541U the oscillator watchdog unit avoids this situation. In this case, after power-on the oscillator watchdog's RC oscillator starts working within a very short start-up time (typ. less than 2 microseconds). In the following the watchdog circuitry detects a failure condition for the on-chip oscillator because this has not yet started (a failure is always recognized if the watchdog's RC oscillator runs faster than the on-chip oscillator). As long as this condition is detected the watchdog uses the RC oscillator output as clock source for the chip rather than the on-chip oscillator's output. This allows correct resetting of the part and brings also all ports to the defined state (see figure 5-4). Under worst case conditions (fast VCC rise time - e.g. 1 s, measured from VCC = 4.25 V up to stable port condition), the delay between power-on and the correct port reset state is : - Typ.: - Max.: 18 s 34 s
The RC oscillator will already run at a VCC below 4.0V (lower specification limit). Therefore, at slower VCC rise times the delay time will be less than the two values given above. After the on-chip oscillator has finally started, the oscillator watchdog detects the correct function; then the watchdog still holds the reset active for a time period of max. 768 cycles of the RC oscillator clock in order to allow the oscillation of the on-chip oscillator to stabilize (figure 5-4, II). Subsequently the clock is supplied by the on-chip oscillator and the oscillator watchdog's reset request is released (figure 5-4, III). However, an externally applied reset still remains active (figure 5-4, IV) and the device does not start program execution (figure 5-4, V) before the external reset is also released. Although the oscillator watchdog provides a fast internal reset it is additionally necessary to apply the external reset signal when powering up. The reasons are as follows: - - Termination of software power down mode Reset of the status flag OWDS that is set by the oscillator watchdog during the power up sequence.
Using a crystal or ceramic resonator for clock generation, the external reset signal must be held active at least until the on-chip oscillator has started and the internal watchdog reset phase is completed (after phase III in figure 5-4). When an external clock generator is used, phase II is very short. Therefore, an external reset time of typically 1 ms is sufficent in most applications. Generally, for reset time generation at power-on an external capacitor can be applied to the RESET pin.
Semiconductor Group
5-3
1997-10-01
Semiconductor Group 5-4 1997-10-01
Figure 5-4 Power-On Reset of the C541U
Ports
Undef.
RESET
On-Chip Osc.
RC Osc.
V CC
RESET
Clock from RC-Oscillator; RESET at Ports
On-Chip Osc. starts; Final RESET Sequence by Osc.-WD; (max. 768 RC Clock Cycles)
V
Port remains in RESET because of active ext. RESET Signal
V
Reset / System Clock C540U / C541U
Power On; undef. Ports typ. 18 s max. 34 s
Start of Program Execution
MCT02627
Reset / System Clock C540U / C541U
5.3
Hardware Reset Timing
This section describes the timing of the hardware RESET signal. The input pin RESET is sampled once during each machine cycle. This happens in state 5 phase 2. Thus, the external reset signal is synchronized to the internal CPU timing. When RESET is found active (high level) the internal reset procedure is started. It needs two complete machine cycles to put the complete device to its correct reset state, i.e. all special function registers contain their default values, the port latches contain 1's etc. Note that this reset procedure is also performed if there is no clock available at the device. (This is done by the oscillator watchdog, which provides an auxiliary clock for performing a perfect reset without clock at the XTAL1 and XTAL2 pins). The RESET signal must be active for at least two machine cycles; after this time the C540U/C541U remains in its reset state as long as the signal is active. When the signal goes inactive this transition is recognized in the following state 5 phase 2 of the machine cycle. Then the processor starts its address output (when configured for external program memory) in the following state 5 phase 1. One phase later (state 5 phase 2) the first falling edge at pin ALE occurs. Figure 5-5 shows this timing for a configuration with EA = 0 (external program memory). Thus, between the release of the RESET signal and the first falling edge at ALE there is a time period of at least one machine cycle but less than two machine cycles.
One Machine Cycle S4 S5 S6 S1 P1 P2 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 S2
RESET
P0
PCL OUT PCH OUT
Inst. in
PCL OUT PCH OUT
P2
ALE
MCT02092
Figure 5-5 CPU Timing after Reset
Semiconductor Group
5-5
1997-10-01
Reset / System Clock C540U / C541U
5.4
Oscillator and Clock Circuit
The oscillator and clock generation circuitry of the C540U/C541U is shown in figure 5-6. The crystal oscillator generates the system clock for the microcontroller. The USB module can be provided with the following clocks : - Full speed operation : 48 MHz with a data rate of 12 Mbit/s - Low speed operation : 6 MHz with a data rate of 1.5 Mbit/s The low speed clock is generated by a dividing the system clock by 2. The full speed clock is generated by a PLL, which multiplies the system clock by a fix factor of 4. This PLL can be enabled or disabled by bit PCLK of SFR DCR. Depending on full or low speed operation of the USB bit SPEED of SFR has to be set or cleared for the selection of the USB clock. Bit UCLK is a general enable bit for the USB clock.
XTAL1 12 MHz XTAL2
Pin Pin
Crystal 12 MHz Oscillator
System Clock of the Microcontroler
Divider by 2 6 MHz
PLL x4 48 MHz 1 0
Enable
PCLK DCR.0
to USB Module SPEED DCR.7 UCLK DCR.1
MCB03377
C540U / C541U
Figure 5-6 Block Diagram of the Clock Generation Circuitry In low speed mode the PLL is not required. Therefore, the PLL should be always disabled in low speed mode. This also reduces the power consumption and the EMC of the C540U/C541U when used in low speed mode. Note: For correct function of the USB module the C540U/C541U must operate with 12 MHz external clock. The microcontroller (except the USB module) is capaable to operate down to 2 MHz
Semiconductor Group
5-6
1997-10-01
Reset / System Clock C540U / C541U
After a hardware reset operation bits PCLK, SPEED, and UCLK are set to 0. Depending on the required operating mode of the USB module a well defined procedure must be executed for switching on the clock for the USB module : - Full speed mode USB PLL is switched on by setting bit PCLK waiting 3 ms for PLL being locked setting bit UCLK setting bit UCLK only
- Low speed mode
The switch-on procedure after hardware reset assures a proper operation of the USB clock system. A software reset operation of the USB module must follow this clock system switch-on procedure. Details of the software reset operation are described in chapter 6.??.
XTAL1 and XTAL2 are the input and output of a single-stage on-chip inverter which can be configured with off-chip components as a Pierce oscillator. The oscillator, in any case, drives the internal clock generator. The clock generator provides the internal clock signals to the chip. These signals define the internal phases, states and machine cycles. Figure 5-7 shows the recommended oscillator circuit.
C XTAL2 C540U C541U XTAL1 C = 20 pF 10 pF for crystal operation
MCS03424
12 MHz C
Figure 5-7 Recommended Crystal Oscillator Circuit In this application the on-chip oscillator is used as a crystal-controlled, positive-reactance oscillator (a more detailed schematic is given in figure 5-8). lt operates in fundamental response mode as an inductive reactor in parallel resonance with a capacitor external to the chip. The crystal specifications and capacitances are non-critical. In this circuit 20 pF can be used as single capacitance at any frequency together with a good quality crystal.
Semiconductor Group
5-7
1997-10-01
Reset / System Clock C540U / C541U
To Internal Timing Circuitry
XTAL2 12 MHz
XTAL1
C540U C541U
C1
C2
MCD03395
Figure 5-8 On-Chip Oscillator Circuiry To drive the C540U/C541U with an external clock source, the external clock signal has to be applied to XTAL1, as shown in figure 5-9. XTAL2 has to be left unconnected. A pullup resistor is suggested (to increase the noise margin), but is optional if VOH of the driving gate corresponds to the VIH2 specification of XTAL1.
V CC
N.C.
C540U C541U XTAL2
External Clock Signal
XTAL1
MCD03396
Figure 5-9 External Clock Source
Semiconductor Group
5-8
1997-10-01
On-Chip Peripheral Components C540U / C541U
6
On-Chip Peripheral Components
This chapter gives detailed information about all on-chip peripherals of the C540U/C541U except for the integrated interrupt controller, which is described separately in chapter 7. 6.1 Parallel I/O
The C540U/C541U in the P-SDIP-52 package has four 8-bit I/O ports. In the P-LCC-44 package port 1 is a 6-bit I/O port only. Port 0 is an open-drain bidirectional I/O port, while ports 1 to 3 are quasi-bidirectional I/O ports with internal pullup resistors. That means, when configured as inputs, ports 1 to 3 will be pulled high and will source current when externally pulled low. Port 0 will float when configured as input. The output drivers of port 0 and 2 and the input buffers of port 0 are also used for accessing external memory. In this application, port 0 outputs the low byte of the external memory address, time multiplexed with the byte being written or read. Port 2 outputs the high byte of the external memory address when the address is 16 bits wide. Otherwise, the port 2 pins continue emitting the P2 SFR contents. In this function, port 0 is not an open-drain port, but uses a strong internal pullup FET. Two port lines of port 1 (P1.0/LED0, P1.1/LED1) and one port line of port 3 (P3.0/LED2) have the capability of driving external LEDs in the output low state.
Semiconductor Group
6-1
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.1.1 Port Structures The C540U/C541U allows for digital I/O on 30 lines (P-LCC-44) or 32 lines (P-SDIP-52) grouped into 4 bidirectional 8-/6-bit ports. Each port bit consists of a latch, an output driver and an input buffer. Read and write accesses to the I/O ports P0 through P3 are performed via their corresponding special function registers P0 to P3. Figure 6-1 shows a functional diagram of a typical bit latch and I/O buffer, which is the core of each of the 4 I/O-ports. The bit latch (one bit in the port's SFR) is represented as a type-D flip-flop, which will clock in a value from the internal bus in response to a "write-to-latch" signal from the CPU. The Q output of the flip-flop is placed on the internal bus in response to a "read-latch" signal from the CPU. The level of the port pin itself is placed on the internal bus in response to a "read-pin" signal from the CPU. Some instructions that read from a port (i.e. from the corresponding port SFR P0 to P3) activate the "read-latch" signal, while others activate the "read-pin" signal.
Read Latch
Int. Bus Write to Latch
D Port Latch CLK
Q Port Driver Circuit Port Pin
Q
MCS01822
Read Pin
Figure 6-10 Basic Structure of a Port Circuitry
Semiconductor Group
6-2
1997-10-01
On-Chip Peripheral Components C540U / C541U
Port 1, 2 and 3 output drivers have internal pullup FET's (see figure 6-11). Each I/O line can be used independently as an input or output. To be used as an input, the port bit stored in the bit latch must contain a one (1) (that means for figure 6-11: Q=0), which turns off the output driver FET n1. Then, for ports 1, 2 and 3, the pin is pulled high by the internal pullups, but can be pulled low by an external source. When externally pulled low the port pins source current (IIL or ITL). For this reason these ports are sometimes called "quasi-bidirectional".
Read Latch
VCC
Internal Pull Up Arrangement Q Bit Latch CLK Pin
Int. Bus Write to Latch
D
Q
n1
MCS01823
Read Pin
Figure 6-11 Basic Output Driver Circuit of Ports 1, 2, and 3
Semiconductor Group
6-3
1997-10-01
On-Chip Peripheral Components C540U / C541U
In fact, the pullups mentioned before and included in figure 6-11 are pullup arrangements as shown in figure 6-12. One n-channel pulldown FET and three pullup FETs are used:
Delay = 1 State
VCC
=1
_ <1
p1
p2
p3 Port Pin
Q
n1
VSS
Input Data (Read Pin) =1 =1
MCS03230
Figure 6-12 Output Driver Circuit of Ports 1 to 5 and 7 - The pulldown FET n1 is of n-channel type. It is a very strong driver transistor which is capable of sinking high currents (IOL); it is only activated if a "0" is programmed to the port pin. A short circuit to VCC must be avoided if the transistor is turned on, since the high current might destroy the FET. This also means that no "0" must be programmed into the latch of a pin that is used as input. - The pullup FET p1 is of p-channel type. It is activated for 1 state (S1) if a 0-to-1 transition is programmed to the port pin, i.e. a "1" is programmed to the port latch which contained a "0". The extra pullup can drive a similar current as the pulldown FET n1. This provides a fast transition of the logic levels at the pin. - The pullup FET p2 is of p-channel type. It is always activated when a "1" is in the port latch, thus providing the logic high output level. This pullup FET sources a much lower current than p1; therefore the pin may also be tied to ground, e.g. when used as input with logic low input level. - The pullup FET p3 is of p-channel type. It is only activated if the voltage at the port pin is higher than approximately 1.0 to 1.5 V. This provides an additional pullup current if a logic high level shall be output at the pin (and the voltage is not forced lower than approximately 1.0 to 1.5 V). However, this transistor is turned off if the pin is driven to a logic low level, e.g when used as input. In this configuration only the weak pullup FET p2 is active, which sources the current IIL . If, in addition, the pullup FET p3 is activated, a higher current can be sourced (ITL). Thus, an additional power consumption can be avoided if port pins are used as inputs with a low level applied. However, the driving capability is stronger if a logic high level is output.
Semiconductor Group
6-4
1997-10-01
On-Chip Peripheral Components C540U / C541U
The described activating and deactivating of the four different transistors results in four states which can be : - - - - input low state (IL), p2 active only input high state (IH) = steady output high state (SOH), p2 and p3 active forced output high state (FOH), p1, p2 and p3 active output low state (OL), n1 active
If a pin is used as input and a low level is applied, it will be in IL state, if a high level is applied, it will switch to IH state. If the latch is loaded with "0", the pin will be in OL state. If the latch holds a "0" and is loaded with "1", the pin will enter FOH state for two cycles and then switch to SOH state. If the latch holds a "1" and is reloaded with a "1" no state change will occur. At the beginning of power-on reset the pins will be in IL state (latch is set to "1", voltage level on pin is below of the trip point of p3). Depending on the voltage level and load applied to the pin, it will remain in this state or will switch to IH (=SOH) state. If it is is used as output, the weak pull-up p2 will pull the voltage level at the pin above p3's trip point after some time and p3 will turn on and provide a strong "1". Note, however, that if the load exceeds the drive capability of p2 (IIL), the pin might remain in the IL state and provide a week "1" until the first 0-to-1 transition on the latch occurs. Until this the output level might stay below the trip point of the external circuitry. The same is true if a pin is used as bidirectional line and the external circuitry is switched from output to input when the pin is held at "0" and the load then exceeds the p2 drive capabilities. If the load exceeds IIL the pin can be forced to "1" by writing a "0" followed by a "1" to the port pin..
Semiconductor Group
6-5
1997-10-01
On-Chip Peripheral Components C540U / C541U
Port 0, in contrast to ports 1, 2 and 3, is considered as "true" bidirectional, because the port 0 pins float when configured as inputs. Thus, this port differs in not having internal pullups. The pullup FET in the P0 output driver (see figure 6-13) is used only when the port is emitting 1 s during the external memory accesses. Otherwise, the pullup is always off. Consequently, P0 lines that are used as output port lines are open drain lines. Writing a "1" to the port latch leaves both output FETs off and the pin floats. In that condition it can be used as high-impedance input. If port 0 is configured as general I/O port and has to emit logic high-level (1), external pullups are required.
Addr./Data Read Latch Control &
VCC
=1 Int. Bus Write to Latch D Bit Latch CLK Q
Port Pin
Q
MUX
MCS02122
Read Pin
Figure 6-13 Port 0 Circuitry
Semiconductor Group
6-6
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.1.1.1
Port 0 and Port 2 used as Address/Data Bus
As shown in figure 6-13 and below in figure 6-14, the output drivers of ports 0 and 2 can be switched to an internal address or address/data bus for use in external memory accesses. In this application they cannot be used as general purpose I/O, even if not all address lines are used externally. The switching is done by an internal control signal dependent on the input level at the EA pin and/or the contents of the program counter. If the ports are configured as an address/data bus, the port latches are disconnected from the driver circuit. During this time, the P2 SFR remains unchanged while the P0 SFR has 1's written to it. Being an address/data bus, port 0 uses a pullup FET as shown in figure 6-13. When a 16-bit address is used, port 2 uses the additional strong pullups p1 to emit 1's for the entire external memory cycle instead of the weak ones (p2 and p3) used during normal port activity.
Read Latch Addr. Control
V CC
Internal Pull Up Arrangement
Int. Bus Write to Latch
D Bit Latch CLK
Q MUX Q =1
Port Pin
Read Pin
MCS02123
Figure 6-14 Port 2 Circuitry
Semiconductor Group
6-7
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.1.2
Alternate Functions
The pins of ports 1 and 3 are multifunctional. They are port pins and also serve to implement special features as listed in table 6-5. Figure 6-15 shows a functional diagram of a port latch with alternate function. To pass the alternate function to the output pin and vice versa, however, the gate between the latch and driver circuit must be open. Thus, to use the alternate input or output functions, the corresponding bit latch in the port SFR has to contain a one (1); otherwise the pulldown FET is on and the port pin is stuck at 0. After reset all port latches contain ones (1).
Read Latch
Alternate Output Function
VCC
Internal Pull Up Arrangement Pin
Int. Bus Write to Latch
D Bit Latch CLK
Q
&
Q
MCS01827
Read Pin
Alternate Input Function
Figure 6-15 Circuitry of Ports 1 and 3
Semiconductor Group
6-8
1997-10-01
On-Chip Peripheral Components C540U / C541U
Ports 1 and 3 are provided for several alternate functions, as listed in table 6-5: Table 6-5 Alternate Functions of Port 1 and 3 Port P1.0 P1.1 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Pin T2 T2EX RxD TxD INT0 INT1 T0 T1 WR RD Alternate Function Input to counter 2 Capture-reload trigger of timer 2 / up down count Serial port's receiver data input (asynchronous) or data input/output (synchronous) Serial port's transmitter data output (asynchronous) or data clock output (synchronous) External interrupt 0 input, timer 0 gate control External interrupt 1 input, timer 1 gate control Timer 0 external counter input Timer 1 external counter input External data memory write strobe External data momory read strobe
Semiconductor Group
6-9
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.1.3 Port Handling 6.1.3.1 Port Timing
When executing an instruction that changes the value of a port latch, the new value arrives at the latch during S6P2 of the final cycle of the instruction. However, port latches are only sampled by their output buffers during phase 1 of any clock period (during phase 2 the output buffer holds the value it noticed during the previous phase 1). Consequently, the new value in the port latch will not appear at the output pin until the next phase 1, which will be at S1P1 of the next machine cycle. When an instruction reads a value from a port pin (e.g. MOV A, P1) the port pin is actually sampled in state 5 phase 1 or phase 2 depending on port and alternate functions. Figure 6-16 illustrates this port timing. lt must be noted that this mechanism of sampling once per machine cycle is also used if a port pin is to detect an "edge", e.g. when used as counter input. In this case an "edge" is detected when the sampled value differs from the value that was sampled the cycle before. Therefore, there must be met certain requirements on the pulse length of signals in order to avoid signal "edges" not being detected. The minimum time period of high and low level is one machine cycle, which guarantees that this logic level is noticed by the port at least once.
S4 P1 P2 XTAL2
S5 P1 P2
S6 P1 P2
S1 P1 P2
S2 P1 P2
S3 P1 P2
Input sampled: e.g.: MOV A, P1 or
P1 Active (driver Transistor)
Port
Old Data
New Data
MCT03397
Figure 6-16 Port Timing
Semiconductor Group
6-10
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.1.3.2
Port Loading and Interfacing
The output buffers of ports 1, 2 and 3 can drive TTL inputs directly. The maximum port load which still guarantees correct logic output levels can be looked up in the C540U/C541U DC characteristics in chapter 10. The corresponding parameters are VOL and VOH. The same applies to port 0 output buffers. They do, however, require external pullups to drive floating inputs, except when being used as the address/data bus. When used as inputs it must be noted that the ports 1, 2 and 3 are not floating but have internal pullup transistors. The driving devices must be capable of sinking a sufficient current if a logic low level shall be applied to the port pin (the parameters I TL and I IL in the C540U/C541U DC characteristics specify these currents). Port 0 has floating inputs when used for digital input.
Semiconductor Group
6-11
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.1.3.3
Read-Modify-Write Feature of Ports 1,2 and 3
Some port-reading instructions read the latch and others read the pin. The instructions reading the latch rather than the pin read a value, possibly change it, and then rewrite it to the latch. These are called "read-modify-write"- instructions, which are listed in table 6-6. If the destination is a port or a port pin, these instructions read the latch rather than the pin. Note that all other instructions which can be used to read a port, exclusively read the port pin. In any case, reading from latch or pin, respectively, is performed by reading the SFR P0, P1, P2 and P3; for example, "MOV A, P3" reads the value from port 3 pins, while "ANL P3, #0AAH" reads from the latch, modifies the value and writes it back to the latch. It is not obvious that the last three instructions in table 6-6 are read-modify-write instructions, but they are. The reason is that they read the port byte, all 8 bits, modify the addressed bit, then write the complete byte back to the latch. Table 6-6 Read-Modify-Write"- Instructions Instruction ANL ORL XRL JBC CPL INC DEC DJNZ MOV Px.y,C CLR Px.y SETB Px.y Function Logic AND; e.g. ANL P1, A Logic OR; e.g. ORL P2, A Logic exclusive OR; e.g. XRL P3, A Jump if bit is set and clear bit; e.g. JBC P1.1, LABEL Complement bit; e.g. CPL P3.0 Increment byte; e.g. INC P1 Decrement byte; e.g. DEC P1 Decrement and jump if not zero; e.g. DJNZ P3, LABEL Move carry bit to bit y of port x Clear bit y of port x Set bit y of port x
The reason why read-modify-write instructions are directed to the latch rather than the pin is to avoid a possible misinterpretation of the voltage level at the pin. For example, a port bit might be used to drive the base of a transistor. When a "1" is written to the bit, the transistor is turned on. If the CPU then reads the same port bit at the pin rather than the latch, it will read the base voltage of the transistor (approx. 0.7 V, i.e. a logic low level!) and interpret it as "0". For example, when modifying a port bit by a SETB or CLR instruction, another bit in this port with the above mentioned configuration might be changed if the value read from the pin were written back to the latch. However, reading the latch rater than the pin will return the correct value of "1".
Semiconductor Group
6-12
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.2
Timers/Counters
The C540U/C541U contains two 16-bit timers/counters, timer 0 and 1, which are useful in many applications for timing and counting. In "timer" function, the timer register is incremented every machine cycle. Thus one can think of it as counting machine cycles. Since a machine cycle consists of 6 oscillator periods, the counter rate is 1/6 of the oscillator frequency. In "counter" function, the timer register is incremented in response to a 1-to-0 transition (falling edge) at its corresponding external input pin, T0 or T1 (alternate functions of P3.4 and P3.5). In this function the external input is sampled during S5P2 of every machine cycle. When the samples show a high in one cycle and a low in the next cycle, the count is incremented. The new count value appears in the register during S3P1 of the cycle following the one in which the transition was detected. Since it takes two machine cycles (12 oscillator periods) to recognize a 1-to-0 transition, the maximum count rate is 1/12 of the oscillator frequency. There are no restrictions on the duty cycle of the external input signal, but to ensure that a given level is sampled at least once before it changes, it must be held for at least one full machine cycle.
6.2.1
Timer/Counter 0 and 1
Timer / counter 0 and 1 of the C540U/C541U are fully compatible with timer / counter 0 and 1 of the 80C51/C501 and can be used in the same four operating modes: Mode 0: 8-bit timer/counter with a divide-by-32 prescaler Mode 1: 16-bit timer/counter Mode 2: 8-bit timer/counter with 8-bit auto-reload Mode 3: Timer/counter 0 is configured as one 8-bit timer/counter and one 8-bit timer; Timer/ counter 1 in this mode holds its count. The effect is the same as setting TR1 = 0. External inputs INT0 and INT1 can be programmed to function as a gate for timer/counters 0 and 1 to facilitate pulse width measurements. Each timer consists of two 8-bit registers (TH0 and TL0 for timer/counter 0, TH1 and TL1 for timer/ counter 1) which may be combined to one timer configuration depending on the mode that is established. The functions of the timers are controlled by two special function registers TCON and TMOD. In the following descriptions the symbols TH0 and TL0 are used to specify the high-byte and the low-byte of timer 0 (TH1 and TL1 for timer 1, respectively). The operating modes are described and shown for timer 0. If not explicity noted, this applies also to timer 1.
Semiconductor Group
6-13
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.2.1.1
Timer/Counter 0 and 1 Registers
Totally six special function registers control the timer/counter 0 and 1 operation : - TL0/TH0 and TL1/TH1 - counter registers, low and high part - TCON and TMOD - control and mode select registers Special Function Register TL0 (Address 8AH) Special Function Register TH0 (Address 8CH) Special Function Register TL1 (Address 8BH) Special Function Register TH1 (Address 8DH) Bit No. MSB 7 .7 Reset Value : 00H Reset Value : 00H Reset Value : 00H Reset Value : 00H LSB 0 .0 TL0
6 .6
5 .5
4 .4
3 .3
2 .2
1 .1
8AH
8CH
.7
.6
.5
.4
.3
.2
.1
.0
TH0
8BH
.7
.6
.5
.4
.3
.2
.1
.0
TL1
8DH
.7
.6
.5
.4
.3
.2
.1
.0
TH1
Bit TLx.7-0 x=0-1
Function Timer/counter 0/1 low value Operating Mode Description 0 1 2 3 "TLx" holds the 5-bit prescaler value. "TLx" holds the lower 8-bit part of the 16-bit timer/counter value. "TLx" holds the 8-bit timer/counter value. TL0 holds the 8-bit timer/counter value; TL1 is not used.
THx.7-0 x=0-1
Timer/counter 0/1 high value Operating Mode Description 0 1 2 3 "THx" holds the 8-bit timer/counter value. "THx" holds the higher 8-bit part of the 16-bit timer/counter value "THx" holds the 8-bit reload value. TH0 holds the 8-bit timer value; TH1 is not used.
Semiconductor Group
6-14
1997-10-01
On-Chip Peripheral Components C540U / C541U
Special Function Register TCON (Address 88H) Bit No. MSB 7 8FH 88H TF1 6 8EH TR1 5 8DH TF0 4 8CH TR0 3 8BH IE1 2 8AH IT1 1 89H IE0
Reset Value : 00H LSB 0 88H IT0 TCON
The shaded bits are not used for controlling timer/counter 0 and 1.
Bit TR0 TF0
Function Timer 0 run control bit Set/cleared by software to turn timer/counter 0 ON/OFF. Timer 0 overflow flag Set by hardware on timer/counter overflow. Cleared by hardware when processor vectors to interrupt routine. Timer 1 run control bit Set/cleared by software to turn timer/counter 1 ON/OFF. Timer 1 overflow flag Set by hardware on timer/counter overflow. Cleared by hardware when processor vectors to interrupt routine.
TR1 TF1
Semiconductor Group
6-15
1997-10-01
On-Chip Peripheral Components C540U / C541U
Special Function Register TMOD (Address 89H) Bit No. 89H MSB 7 Gate
Reset Value : 00H LSB 0 M0 TMOD
6 C/T
5 M1
4 M0
3 Gate
2 C/T
1 M1
Timer 1 Control
Timer 0 Control
Bit GATE
Function Timer 1/0 gating control When set, timer/counter "x" is enabled only while "INT x" pin is high and "TRx" control bit is set. When cleared timer "x" is enabled whenever "TRx" control bit is set. Timer 1/0 counter or timer select bit Set for counter operation (input from "Tx" input pin). Cleared for timer operation (input from internal system clock). Timer 1/0 mode select bits M1 0 M0 0 Function 8-bit timer/counter: "THx" operates as 8-bit timer/counter "TLx" serves as 5-bit prescaler 16-bit timer/counter. "THx" and "TLx" are cascaded; there is no prescaler 8-bit auto-reload timer/counter. "THx" holds a value which is to be reloaded into "TLx" each time it overflows Timer 0 : TL0 is an 8-bit timer/counter controlled by the standard timer 0 control bits. TH0 is an 8-bit timer only controlled by timer 1 control bits. Timer 1 : Timer/counter 1 stops
C/T
M1 M0
0 1
1 0
1
1
Semiconductor Group
6-16
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.2.1.2
Mode 0
Putting either timer/counter 0,1 into mode 0 configures it as an 8-bit timer/counter with a divide-by32 prescaler. Figure 6-17 shows the mode 0 operation. In this mode, the timer register is configured as a 13-bit register. As the count rolls over from all 1's to all 0's, it sets the timer overflow flag TF0. The overflow flag TF0 then can be used to request an interrupt. The counted input is enabled to the timer when TR0 = 1 and either Gate = 0 or INT0 = 1 (setting Gate = 1 allows the timer to be controlled by external input INT0, to facilitate pulse width measurements). TR0 is a control bit in the special function register TCON; Gate is in TMOD. The 13-bit register consists of all 8 bits of TH0 and the lower 5 bits of TL0. The upper 3 bits of TL0 are indeterminate and should be ignored. Setting the run flag (TR0) does not clear the registers. Mode 0 operation is the same for timer 0 as for timer 1. Substitute TR0, TF0, TH0, TL0 and INT0 for the corresponding timer 1 signals in figure 6-17. There are two different gate bits, one for timer 1 (TMOD.7) and one for timer 0 (TMOD.3).
OSC
/6 C/T = 0 TL0 (5 Bits) C/T = 1 TH0 (8 Bits) TF0 Interrupt
P3.4/T0 Control Gate =1
_ <1
TR0
&
P3.2/INT0
MCS02726
Figure 6-17 Timer/Counter 0, Mode 0: 13-Bit Timer/Counter
Semiconductor Group
6-17
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.2.1.3
Mode 1
Mode 1 is the same as mode 0, except that the timer register is running with all 16 bits. Mode 1 is shown in figure 6-18.
OSC
/6 C/T = 0 TL0 (8 Bits) C/T = 1 TH0 (8 Bits) TF0 Interrupt
P3.4/T0 Control Gate =1
_ <1
TR0
&
P3.2/INT0
MCS02727
Figure 6-18 Timer/Counter 0, Mode 1: 16-Bit Timer/Counter
Semiconductor Group
6-18
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.2.1.4
Mode 2
Mode 2 configures the timer register as an 8-bit counter (TL0) with automatic reload, as shown in figure 6-19. Overflow from TL0 not only sets TF0, but also reloads TL0 with the contents of TH0, which is preset by software. The reload leaves TH0 unchanged.
OSC
/6 C/T = 0 TL0 (8 Bits) C/T = 1 TF0 Interrupt
P3.4/T0 Control Gate =1
_ <1
Reload
TR0
& TH0 (8 Bits)
MCS02728
P3.2/INT0
Figure 6-19 Timer/Counter 0,1, Mode 2: 8-Bit Timer/Counter with Auto-Reload
Semiconductor Group
6-19
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.2.1.5
Mode 3
Mode 3 has different effects on timer 0 and timer 1. Timer 1 in mode 3 simply holds its count. The effect is the same as setting TR1=0. Timer 0 in mode 3 establishes TL0 and TH0 as two seperate counters. The logic for mode 3 on timer 0 is shown in figure 6-20. TL0 uses the timer 0 control bits: C/T, Gate, TR0, INT0 and TF0. TH0 is locked into a timer function (counting machine cycles) and takes over the use of TR1 and TF1 from timer 1. Thus, TH0 now controls the "timer 1" interrupt. Mode 3 is provided for applications requiring an extra 8-bit timer or counter. When timer 0 is in mode 3, timer 1 can be turned on and off by switching it out of and into its own mode 3, or can still be used by the serial channel as a baud rate generator, or in fact, in any application not requiring an interrupt from timer 1 itself.
OSC
/6
f OSC /6
C/T = 0
Timer Clock TL0 (8 Bits)
TF0
Interrupt
C/T = 1 P3.4/T0 =1
_ <1
Control TR0 &
Gate
P3.2/INT0 TH0 (8 Bits) TR1
TR1
TF1
Interrupt
MCS02729
Figure 6-20 Timer/Counter 0, Mode 3: Two 8-Bit Timers/Counters
Semiconductor Group
6-20
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.3
SSC Interface (C541U only)
The C541U microcontroller provides a Synchronous Serial Channel unit, the SSC. This interface is compatible to the popular SPI serial bus interface. It can be used for simple I/O expansion via shift registers, for connection of a variety of peripheral components, such as A/D converters, EEPROMs etc., or for allowing several microcontrollers to be interconnected in a master/slave structure. It supports full-duplex or half-duplex operation and can run in a master or a slave mode. Figure 6-21 shows the block diagram of the SSC. The central element of the SSC is an 8-bit shift register. The input and the output of this shift register are each connected via a control logic to the pin P1.3 / SRI (SSC Receiver In) and P1.4 / STO (SSC Transmitter Out). This shift register can be written to (SFR STB) and can be read through the Receive Buffer Register SRB.
Pin
P1.2 / SCLK
f OSC
Pin Clock Divider ... Clock Selection Shift Register SRB Receive Buffer Register Interrupt Pin P1.5 / SLS STB Pin Control Logic P1.3 / SRI
Pin
P1.4 / STO
SCIEN Int. Enable Reg. SSCCON Control Register Status Register Control Logic SCF
Internal Bus
MCB03379
Figure 6-21 SSC Block Diagram
Semiconductor Group
6-21
1997-10-01
On-Chip Peripheral Components C540U / C541U
As the SSC is a synchronous serial interface, for each transfer a dedicated clock signal sequence must be provided. The SSC has implemented a clock control circuit, which can generate the clock via a baud rate generator in the master mode, or receive the transfer clock in the slave mode. The clock signal is fully programmable for clock polarity and phase. The pin used for the clock signal is P1.2 / SCLK. When operating in slave mode, a slave select input SLS is provided which enables the SSC interface and also will control the transmitter output. The pin used for this is P1.5 / SLS. In addition to this there is an additional option for controlling the transmitter output by software. The SSC control block is responsible for controlling the different modes and operation of the SSC, checking the status, and generating the respective status and interrupt signals. 6.3.1 General Operation of the SSC After initialization of the SSC, the data to be transmitted has to be written into the shift register STB. In master mode this will initiate the transfer by resetting the baudrate generator and starting the clock generation. The control bits CPOL and CPHA in the SSCCON register determine the idle polarity of the clock (polarity between transfers) and which clock edges are used for shifting and sampling data (see figure 6-23). While the transmit data in the shift register is shifted out bit per bit starting with the MSB or LSB, the incoming receive data are shifted in, synchronized with the clock signal at pin SCLK. When the eight bits are shifted out (and the same number is of course shifted in), the contents of the shift register is transferred to the receive buffer register SRB, and the transmission complete flag TC is set. If enabled an interrupt request will be generated. After the last bit has been shifted out and was stable for one bit time, the STO output will be switched to "1" (forced "1"), the idle state of STO. This allows connection of standard asynchronous receivers to the SSC in master mode. In slave mode the device will wait for the slave select input SLS to be activated (=low) and then will shift in the data provided on the receive input according to the clock provided at the SCLK input and the setting of the CPOL ad CPHA bits. After eight bits have been shifted in, the content of the shift register is transferred to the receive buffer register and the transmission complete flag TC is set. If the transmitter is enabled in slave mode (TEN bit set to 1), the SSC will shift out at STO at the same time the data currently contained in the shift register. If the transmitter is disabled, the STO output will remain in the tristate state. This allows more than one slave to share a common select line. If SLS is inactive the SSC will be inactive and the content of the shift register will not be modified. 6.3.2 Enable/Disable Control Bit SSCEN of the SSCCON register globally enables or disables the synchronous serial interface. Setting SSCEN to "0" stops the baud rate generator and all internal activities of the SSC. Current transfers are aborted. The alternate output functions at pins P1.3 / SRI, P1.4 / STO, P1.5 / SLS, and P1.2 / SCLK return to their primary I/O port function. These pins can now be used for general purpose I/O.
Semiconductor Group
6-22
1997-10-01
On-Chip Peripheral Components C540U / C541U
When the SSC is enabled and in master mode, pins P1.3 / SRI, P1.4 / STO, and P1.2 / SCLK will be switched to the SSC control function. P1.4 / STO and P1.2 / SCLK actively will drive the lines P1.5 / SLS will remain a regular I/O pin. The output latches of port pins dedicated to alternate functions must be programmed to logic 1 (= state after reset). In slave mode all four control pins will be switched to the alternate function. However, STO will stay in the tristate state until the transmitter is enabled by SLS input being low and the TEN control bit is set to 1. This allows for more than one slave to be connected to one select line and the final selection of the slave will be done by a software protocol. 6.3.3 Baudrate Generation (Master Mode only) The baudrate clock is generated out of the processor clock (fosc). This clock is fed into a resetable divider with seven outputs for different baudrate clocks (fosc/4 to fosc/256). One of these eight clocks is selected by the bits BRS2,1,0 in SSCCON and provided to the shift control logic. Whenever the shift register is loaded with a new value, the baudrate generation is restarted with the trailing edge of the write signal to the shift register. In the case of CPHA = 0 the baudrate generator will be restarted in a way, that the first SCLK clock transisition will not occur before one half transmit clock cycle time after the register load. This ensures that there is sufficient setup time between MSB or LSB valid on the data output and the first sample clock edge and that the MSB or LSB has the same length than the other bits. (No special care is necessary in case of CPHA=1, because here the first clock edge will be used for shifting). 6.3.4 Write Collision Detection When an attempt is made to write data to the shift register while a transfer is in progress, the WCOL bit in the status register will be set. The transfer in progress continues uninterrupted, the write will not access the shift register and will not corrupt data. However, the data written erroneously will be stored in a shadow register and can be read by reading the STB register. Depending on the operation mode there are different definitions for a transfer being considered to be in progress: Master Mode : CPHA=0: CPHA=1: from the trailing edge of the write into STB until the last sample clock edge from the first SCLK clock edge until the last sample clock edge
Note, that this also means, that writing new data into STB immediately after the transfer complete flag has been set (also initiated with the last sample clock edge) will not generate a write collision. However, this may shorten the length of the last bit (especially at slow baudrates) and prevent STO from switching to the forced "1" between transmissions. Slave Mode : CPHA=0: CPHA=1: while SLS is active from the first SCLK clock edge until the last sample clock edge
Semiconductor Group
6-23
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.3.5 Master/Slave Mode Selection The selection whether the SSC operates in master mode or in slave mode has to be made depending on the hardware configuration before the SSC will be enabled. Normally a specific device will operate either as master or as slave unit. The SSC has no on-chip support for multimaster configurations (switching between master and slave mode operation). Operating the SSC as a master in a multimaster environment requires external circuitry for swapping transmit and receive lines.
Figure 6-22 Typical SSC System Configuration
Semiconductor Group
6-24
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.3.6 Data/Clock Timing Relationships The SSC provides four different clocking schemes for clocking the data in and out of the shift register. Controlled by two bits in SSCCON, the clock polarity (idle state of the clock, control register bit CPOL) and the clock/data relationship (phase control, control register bit CPHA), i.e. which clock edges will be used for sample and shift. The following figures show the various possibilities. 6.3.6.1 Master Mode Operation
Figure 6-23 shows the clock/data/control relationship of the SSC in master mode. When CPHA is set to 1, the MSB (or LSB) of the data that was written into the shift register will be provided on the transmitter output after the first clock edge, the receiver input will sample with the next clock edge. The direction (rising or falling) of the respective clock edge is depending on the clock polarity selected. After the last bit has been shifted out, the data output STO will go to the high output level (logic 1) and remain there until the next transmission is started. However, when enabling the SSC after reset, the logic level of STO will be undefined, until the first transmission starts. When CPHA is 0, the MSB (or LSB) will output immediately after the data was written into the shift register. The first clock edge of SCLK will be used for sampling the input data, the next to shift out the next bit. Between transmissons the data output STO will be "1".
SCLK (CPOL = 0) SCLK (CPOL = 1) CPHA = 0 Write to STB Register STO Input Sample at SRI CPHA = 1 Write to STB Register STO Input Sample at SRI
MCS02440
MSB
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
MSB
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
1) MSB shift first mode is assumed (Bit LSBSM in register SCCMOD is 0)
Figure 6-23 Master Mode Operation of SSC
Semiconductor Group
6-25
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.3.6.2
Slave Mode Operation
Figure 6-24 shows the clock/data/control relationship of the SSC in slave mode. When SLS is active (low) and CPHA is 1, the MSB (or LSB) of the data that was written into the shift register will be provided on the transmitter output after the first clock edge (if the transmitter was enabled by setting the TEN bit to 1), the receiver input will sample the input data with the next clock edge. The direction (rising or falling) of the respective clock edge is depending on the clock polarity selected. In this case (CPHA = 1) the SLS input may stay active during the transmission of consecutive bytes. When CPHA = 0 and the transmitter is enabled, the MSB (or LSB) of the shift register is provided immediately after the SLS input is pulled to active state (low). The receiver will sample the input with the first clock edge, and the transmitter will shift out the next bit with the following clock edge. If the transmitter is disabled the output will remain in the high impedance state. In this case (CPHA=0), correct operation requires that the SLS input to go inactive between consecutive bytes. When SLS is inactive the internal shift clock is disabled and the content of the shift register will not be modified. This also means that SLS must stay active until the transmission is completed. If during a transmission SLS goes inactive before all eight bits are received, the reception process will be aborted and the internal frame counter will be reset. TC will not be set in this case. With the next activation of SLS a new reception process will be started.
SCLK (CPOL = 0) SCLK (CPOL = 1)
SLS
CPHA = 1
STO Input Sample at SRI
MSB
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
SLS
CPHA = 0
STO Input Sample at SRI
MSB
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
MCS02441
1) MSB shift first mode is assumed (Bit LSBSM in register SCCMOD is 0)
Figure 6-24 Slave Mode Operation of SSC Semiconductor Group 6-26 1997-10-01
On-Chip Peripheral Components C540U / C541U
6.3.7 Register Description The SSC interface has six SFRs which are listed in table 6-7. Table 6-7 Special Function Registers of the COMP Unit Symbol SSCCON SCIEN SCF STB SRB SSCMOD Description SSC Control Register SSC Interrupt Enable Register SSC Status Register SSC Transmit Buffer Register SSC Receive Buffer Register SSC Mode Test Register Address 93H ACH ABH 94H 95H 96H
The register SSCCON provides the basic control of the SSC functions like general enable/disable, mode selections and transmitter control. Special Function Register SSCCON (Address 93H) MSB 7 SCEN Reset Value : 07H LSB 0 BRS0 SSCCON
Bit No. 93H
6 TEN
5
4
3
2 BRS2
1 BRS1
MSTR CPOL CPHA
Bit SCEN
Function SSC system enable SCEN =0 : SSC subsystem is disabled, related pins are available as general I/O. SCEN=1 : SSC subsystem is enabled. Slave mode - transmitter enable TEN =0 : Transmitter output STO will remain in tristate state, regardless of the state of SLS. TEN = 1 and SLS = 0 : Transmitter will drive the STO output. In master mode the transmitter will be enabled all the time, regardless of the setting of TEN. Master mode selection MSTR=0 : Slave mode is selected MSTR=1 : Master mode is selected This bit has to be set to the correct value depending on the hardware setup of the system before the SSC will be enabled. It must not be modified afterwards. There is no on-chip support for dynamic switching between master and slave mode operation.
TEN
MSTR
Semiconductor Group
6-27
1997-10-01
On-Chip Peripheral Components C540U / C541U
Bit CPOL
Function Clock polarity This bit controls the polarity of the shift clock and in conjunction with the CPHA bit which clock edges are used for sample and shift. CPOL=0 : SCLK idle state is low. CPOL=1 : SCLK idle state is high. Clock phase This bit controls in conjunction with the CPOL bit controls which clock edges are used for sample and shift CPHA=0 : The first clock edge of SCLK is used to sample the data, the second to shift the next bit out at STO. In master mode the transmitter will provide the first data bit on STO immediately after the data was written into the STB register. In slave mode the transmitter (if enabled via TEN) will shift out the first data bit with the falling edge of SLS . CPHA=1 : The first data bit is shifted out with the first clock edge of SCLK and sampled with the second clock edge Baudrate selection bits These bits select one of the possible divide factors for generating the baudrate out of the micrcontroller clock rate fosc . The baudrate is defined by . fosc fosc Baudrate = ------------------------------- = ----------------------------------BRS ( 2 - 0 ) Dividefactor 2*2 for BRS (2-0) 0 BRS(2-0) Divide Factor reserved reserved 8 16 32 64 128 256 Example: Baudrate for fosc = 12 MHz reserved reserved 1.5 MBaud 750 kBaud 375 kBaud 187.5 kBaud 93.75 kBaud 46.875 kBaud
CPHA
BRS2, BRS1, BRS0
0 1 2 3 4 5 6 7 Note:
SSCCON must be programmed only when the SSC is idle. Modifying the contents of SSCCON while a transmission is in progress will corrupt the current transfer and will lead to unpredictable results.
Semiconductor Group
6-28
1997-10-01
On-Chip Peripheral Components C540U / C541U
This register enables or disables interrupt request for the status bits. SCIEN must only be written when the SSC interrupts are disabled in the general interrupt enable register IEN2 (9AH) using bit ESSC otherwise unexpected interrupt requests may occur. Special Function Register SCIEN (Address ACH) MSB 7 - Reset Value : XXXXXX00B LSB 0 SCIEN
Bit No. ACH
6 -
5 -
4 -
3 -
2 -
1
WCEN TCEN
Bit - WCEN
Function Reserved for future use. SSC write collision interrupt enable WCEN =0 : No interrupt request will be generated if the WCOL bit in the status register SCF is set. WCEN=1 : An interrupt is generated if the WCOL bit in the status register SCF is set. SSC transfer completed interrupt enable TCEN =0 : No interrupt request will be generated if the TC bit in the status register SCF is set. TCEN=1 : An interrupt is generated if the TC bit in the status register SCF is set. The SSC interrupt behaviour is in addition affected by bit ESSC in the interrupt enable register IEN2 and by bit 2 in the interrupt priority registers IP0 and IP1.
TCEN
Note:
Semiconductor Group
6-29
1997-10-01
On-Chip Peripheral Components C540U / C541U
Special Function Register SCF (Address ABH) MSB 7 -
Reset Value : XXXXXX00B LSB 0 TC SCF
Bit No. ABH
6 -
5 -
4 -
3 -
2 -
1 WCOL
Bit - WCOL
Function Reserved for future use. SSC write collision detect If WCOL is set it indicates that an attempt was made to write to the shift register STB while a data transfer was in progress and not fully completed. This bit will be set at the trailing edge of the write signal during the erronous write attempt. This bit can be reset in two different ways : 1. writing a "0" to the bit (bit access, byte access or read-modify-write access); 2. by reading the bit or the status register, followed by a write access to STB. If bit WCEN in the SCIEN register is set, an interrupt request will be generated if WCOL is set. SSC transfer completed If TC is set it indicates that the last transfer has been completed. It is set with the last sample clock edge of a reception process. This bit can be reset in two different ways: 1. writing a "0" to the bit (bit access, byte access or read-modify-write access) after the receive buffer register SRB has been read; 2. by reading the bit or the status register, followed by a read access to SRB. If bit TCEN in the SCIEN register is set, an interrupt request will be generated if TC is set.
TC
The register STB (at SFR address 94H) holds the data to be transmitted while SRB (at SFR address 95H) contains the data which was received during the last transfer. A write to the STB places the data directly into the shift register for transmission. Only in master mode this also will initiate the transmission/reception process. When a write collision occurs STB will hold the value written erroneously. This value can be read by reading from STB. A read from the receive buffer register SRB will transfer the data of the last transfer completed. This register must be read before the next transmission completes or the data will be lost. There is no indication for this overrun condition.
Semiconductor Group
6-30
1997-10-01
On-Chip Peripheral Components C540U / C541U
Special Function Register STB (Address 94H) Special Function Register SRB (Address 95H) MSB 7 .7
Reset Value : XXH Reset Value : XXH LSB 0 .0 STB
Bit No. 94H
6 .6
5 .5
4 .4
3 .3
2 .2
1 .1
95H
.7
.6
.5
.4
.3
.2
.1
.0
SRB
After reset the contents of the shift register and the receive buffer register are undefined. The register SSCMOD is used to enable test modes during factory test. It must not be written or modified during normal operation of the C541U. Special Function Register SSCMOD (Address 96H) MSB 7 Reset Value : 00H LSB 0 LSBSM SSCMOD
Bit No. 96H
6
5 0
4 0
3 0
2 0
1 0
LOOPB TRIO
Bit LOOPB
Function SSC loopback enable This bit should be used for test purposes only. LOOPB = 0 : The SSC operates as specified. LOOPB = 1 : The STO output is connected internally via an inverter to the SRI input, allowing to check the transfer locally without a second SSC device. SSC disable tristate mode of SSC inputs This bit should be used for test purposes only. TRIO = 0 : The SSC operates as specified. TRIO = 1 : The SSC inputs will be connected to the output latch of the corresponding port pin. This allows a test of the SSC in slave mode by simulating a transfer via a program setting the port latches accordingly. All bits of this register are set to 0 after reset. When writing SSCMOD, these bits must be written with 0. SSC LSB shift mode If LSBSM is cleared, the SSC will shift out the MSB of the data first LSB last. If LSBSM is set, the SSC will shift out LSB first and MSB last.
TRIO
5-1 LSBSM
Semiconductor Group
6-31
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4
USB Module
The USB module in the C540U/C541U handles all transactions between the serial USB bus and the internal (parallel) bus of the microcontroller. The USB module includes several units which are required to support data handling with the USB bus : the on-chip USB bus transceiver, the USB memory with two pages of 128 bytes each, the memory management unit (MMU) for USB and CPU memory access control, the UDC device core for USB protocol handling, the microcontroller interface with the USB specific special function registers and the interrupt control logic. A clock generation unit provides the clock signal for the USB module for full speed and low speed USB operation. Figure 6-25 shows the block diagram of the functional units of the USB module with their interfaces.
XTAL1 Pin
XTAL2 Pin
USB D+ Pin
Bus DPin
Osc. 12 MHz
Page 1
7F H
7F H
Transceiver (On-chip) x4 PLL 48 MHz 2 6 MHz Data USB Device Core (UDC) Control
USB Module
Page 0 USB Memory (128 x 8) 00 H
00 H Internal Bus
Data Address MMU USB Memory Management Control
MCU Interface
11 SFR Addr.
Interrupt Generation
MCB03380
Figure 6-25 USB Module Block Diagram
Semiconductor Group
6-32
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.1 Transfer Modes USB data transfers take place between host software and a particular endpoint on a USB device. A given USB device may support multiple data transfer endpoints. The USB host treats communications with any endpoint of a USB device independently from any other endpoint. Such associations between the host software and a USB device endpoint are called pipes. As an example, a given USB device could have an endpoint supporting a pipe for transporting data to the USB device and another endpoint supporting a pipe for transporting data from the USB device. The USB architecture comprehends four basic types of data transfers. Table 6-8 USB Transfer Modes Mode Control Function Control data are used to configure devices, data transmission is lossless. Control pipes are bidirectional, data transfer is possible in both directions via one pipe. Endpoint 0 is always configured as control endpoint with a maximum buffer length of 8 bytes. The control endpoint can be configured to handle data packets of 64 bytes maximum length. Isochronous data are continuous and real-time in creation and consumption, such as voice data. In this case, real-time is defined from frame to frame. Isochronous data transfer has the highest priority, but is not always lossless. Isochronous pipes are always unidirectional, so one endpoint can be associated to an IN pipe or an OUT pipe. The C540U/C541U supports up to 64 bytes. Interrupt data are a small amount of data, which are transferred to the host every n frames, with n being programmable by the host. Data delivery is lossless. Interrupt pipes are always unidirectional IN pipes, the maximum data packet length is limited to 64 bytes. Bulk data can be a larger amount of data, which can be split by the host in several data packets witin one frame. Data delivery is lossless. Bulk pipes are always unidirectional, so one endpoint can be associated to an IN pipe or an OUT pipe. The maximum data packet length is limited to 64 bytes.
Isochronous (full speed mode only)
Interrupt
Bulk (full speed mode only)
Semiconductor Group
6-33
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.2 USB Memory Buffer Modes 6.4.2.1 Overview
Every endpoint of the USB module in the C540U/C541U can operate in two modes, dual buffer mode and single buffer mode. Each mode provides random or sequential access to the USB memory. Figure 6-26 shows the possible buffer modes.
Buffer Modes
Dual Buffer Mode
Single Buffer Mode
Sequential Access
Random Access
Sequential Access
Random Access
MCD03399
Figure 6-26 Buffer Modes of the C540U/C541U USB Module Single Buffer Mode In single buffer mode, the USB and the CPU use one common USB memory page. The active buffer page is either page 0 or page 1. Dual Buffer Mode In dual buffer mode the USB and the CPU write into different USB memory pages allowing back-toback data transfers. Switching between the pages is done fully automatically, enabling a high data transfer rate between CPU and USB module. Random Access Random access is available in single buffer mode and dual buffer mode. Random access allows to change only a few bytes in a data block of the USB memory buffer. When the CPU has modified the bytes in the data block, setting of bit DONE by software marks the buffer ready for transmission or reception of data over the USB pipe. For modification of a specific byte in the buffer, the CPU must write the address to SFR ADROFF and read/write the data byte from/to register USBVAL. Sequential access In sequential access mode the CPU accesses the data register USBVAL continuously without setting the address of the next USB memory buffer location. This is done automatically if bit INCE (increment enable) in the related SFR EPBCRn is set. After a specific number of CPU accesses (as defined in SFR EPLENn), the buffer has been read/written by the CPU and is empty/full. Setting of bit DONE by software, manually or automatically, marks the USB buffer ready. Note : Only buffers for device to host pipes can be written.
Semiconductor Group
6-34
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.2.2
Single Buffer Mode
In single buffer mode the USB and the CPU share one common USB memory page. The active buffer page can be either page 0 or page 1. Back-to-back transfers are not possible in this mode. Easy data storage and controlling can be achieved in this mode. E.g. a once created data set for an interrupt endpoint can be stored permanently in USB memory. As a result, an additional memory space for data storage is no longer needed. 6.4.2.2.1 USB Write Access Figure 6-27 shows the basic flowchart of a USB write access to one USB memory buffer in single buffer mode.
Buffer is empty: USB write Access Enabled CPU read Access Disabled
USB write Request? YES Buffer is written by USB
NO
EOD = 1
Buffer full? YES Buffer is full: USB write Access Disabled CPU read Access Enabled
NO
SOD = 1
Buffer can be read by CPU
YES
Buffer empty?
NO
MCD03400
Figure 6-27 USB Write Access in Single Buffer Mode - Buffer Handling Semiconductor Group 6-35 1997-10-01
On-Chip Peripheral Components C540U / C541U
Figure 6-28 shows more details of an USB write access to USB memory in single buffer mode. After SOF(n) (start of frame) occured at 1 , the USB starts writing at 2 a fixed number of bytes into the USB memory. A byte counter is incremented after every USB memory write operation. When the USB memory write operation (Len(n)) is finished correctly, bit SOD (start of data) is set at 3 , indicating a full USB memory buffer. Furthermore, the byte counter value is stored in the corresponding length register, indicating the number of bytes which have been transferred and can be now read by the CPU. Subsequently, the CPU can read data bytes from USB memory, generating an EOD (end of data) at 4 after the last byte has been read. Bit EOD set indicates an empty USB buffer, which now can be written again by the USB. Figure 6-28 also shows a second USB write access operation with a different number of bytes (Len(n+1)), where the CPU read operation from the USB memory is interrupted twice.
Number of Data Bytes in USB Buffer
SOD Set SOD Set
3 3
Len (n) Len (n+1)
4
4
EOD Set
1 2 1 2
EOD Set
Time Frame n+1 SOF (n+2) Set
Frame n SOF (n) Set USB write Accesses CPU read Accesses
MCT03401
Figure 6-28 Single Buffer Mode : Standard USB Write Access
Note: The CPU accesses shown in the following diagrams assume that bit INCE in the corresponding endpoint control register is set. A frame is the 1 ms time interval defined by the USB host. Every frame begins with a SOF token (start-of-frame).
Semiconductor Group
6-36
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.2.2.2 USB Read Access Figure 6-29 shows the basic flowchart of a USB read access from one USB memory buffer in single buffer mode.
Buffer is empty: USB read Access Disabled CPU write Access Enabled
Buffer can be written by CPU
Buffer full? YES SOD = 1 Buffer is full: USB read Access Enabled CPU write Access Disabled
NO
EOD = 1
USB read Request? YES Buffer is read by USB
NO
YES
Buffer empty?
NO
MCD03402
Figure 6-29 USB Read Access in Single Buffer Mode - Buffer Handling
Semiconductor Group
6-37
1997-10-01
On-Chip Peripheral Components C540U / C541U
The standard USB read access as shown in figure 6-30 supports random and sequential CPU access mode of the USB memory. The memory buffer full condition is true when a predefined number of bytes (MaxLen) has been written by the CPU or when bit DONE has been set by software. After SOF(n) occured at 1 with a full USB memory buffer, the USB reads the buffer. Bit SOD is set at the end of the USB buffer read operation at 2 , indicating an empty USB memory buffer. Now, the CPU can write again data into the USB memory buffer until a determined number (MaxLen) of bytes are transfered or until bit DONE has been set by software. The MaxLen value must be previously set by software. When the actual USB memory buffer address offset is equal to MaxLen, bit EOD is set at 3 to indicate a full buffer. The USB memory buffer address offset is automatically incremented with every CPU write access to USB memory buffer if bit INCE is set. During the next frame (after SOF(n+1)) is set at 4 ) the USB memory buffer can be read by the USB. Bit SOD is set again when the USB memory buffer becomes empty again. If bit DONE is set by the CPU (at 5 ), the buffer is declared by the CPU to be full, even if the address offset does not reach the value of MaxLen.
Number of Data Bytes in USB Buffer
EOD Set
MaxLen
3
2
DONE Set SOD Set
4 5
SOD Set
1
Time Frame n SOF (n) Set USB read Accesses SOF (n+1) Set CPU write Accesses Frame n+1 SOF (n+2) Set
MCT03403
Figure 6-30 Single Buffer Mode : Standard USB Read Access
Semiconductor Group
6-38
1997-10-01
On-Chip Peripheral Components C540U / C541U
The start-of-frame-done enable feature (SOFDE=1) is useful for USB memory read accesses when the number of data bytes to be transferred from CPU to USB is not predictable (see figure 6-31). The CPU can write data as desired to USB memory until a SOF occures (every 1 ms). The automatic setting of bit SOF causes bit EOD to be set (at 1 ). This indicates the CPU that no CPU action on this buffer is required until a USB read operation has been finished (bit SOD set at 2 ). Setting of SOD indicates an empty USB memory to the CPU which can start again writing data into USB memory.
Number of Data Bytes in USB Buffer
MaxLen
1 2
SOD Set
SOD Set
Time Frame n SOF (n) and EOD Set USB read Accesses CPU write Accesses SOF (n+1) and EOD Set
MCT03404
Frame n+1
Figure 6-31 Single Buffer Mode : USB Read Access with Start-of-Frame-Done Enabled
Semiconductor Group
6-39
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.2.3
Dual Buffer Mode
In dual buffer mode, both USB memory pages (page 0 and page 1) are used for data transfers. The logical assignment of the memory pages to CPU or USB is automatically switched. The following two figures show the buffer handling concept in dual buffer mode for the USB read access and USB write access.
CPU Buffer Handling
USB Buffer Handling
CPU Page is empty : CBF = 0 CPU write Access Enabled
USB Page is full : UBF = 1 USB read Access Enabled
CPU writes 1 Byte
USB read Request? YES USB reads Buffer
NO
NO
CPU Buffer full? YES
SOD = 1
CPU Buffer is full : CBF = 1 CPU write Access Disabled
USB Buffer is empty: UBF = 0 USB read Access Disabled
EOD = 1
NO
USB Page empty? YES
CPU Page full? YES
NO
Pages are swapped (CBF = 1 and UBF = 0)
MCB03405
Figure 6-32 USB Read Access in Dual Buffer Mode - Buffer Handling
Semiconductor Group
6-40
1997-10-01
On-Chip Peripheral Components C540U / C541U
CPU Buffer Handling
USB Buffer Handling
CPU Page is full : CBF = 1 CPU read Access Enabled
USB Page is empty : UBF = 0 USB write Access Enabled
CPU reads 1 Byte
USB write Request? YES USB writes Buffer
NO
NO
CPU Buffer empty? YES
SOD = 1
CPU Buffer is empty : CBF = 0 CPU read Access Disabled
USB Buffer is full: UBF = 1 USB write Access Disabled
EOD = 1
NO
USB Page full? YES
CPU Page empty? YES
NO
Pages are swapped (CBF = 0 and UBF =1)
MCB03406
Figure 6-33 USB Write Access in Dual Buffer Mode - Buffer Handling
Semiconductor Group
6-41
1997-10-01
On-Chip Peripheral Components C540U / C541U
Figure 6-34 describes an example of a USB read operation in sequential mode with both buffers empty at the beginning of the USB read operation. The CPU starts writing data with sequential access (INCE=1) to the buffer assigned to the CPU at 1 . By definition, the buffer is full when MaxLen is reached at 2 . The second buffer assigned to the USB is empty (UBF=0) and as a result both buffers are logically swapped. Now the buffer assigned to USB is full (UBF=1) and an USB read access can take place. After the USB read access, the buffer assigned to the USB is empty again with UBF=0. During the USB read access the CPU is still allowed to write into its assigned buffer. When reaching MaxLen at 3 , the CPU buffer is full and both buffers are again logically swapped. The USB further execute its read access.
Number of Data Bytes
3
MaxLen CPU Buffer Page 0
2
Page 1
Page 1
CBF =0
1
Time Swap Buffer UBF = 1 Page 1 Page 0 Swap Buffer UBF = 1 Page 1
MaxLen USB Buffer UBF =0
UBF = 0 Frame n Frame n+1 SOF (n+1) Set CPU write Accesses SOF (n+2) Set
Time
SOF (n) Set USB read Accesses
MCT03407
Figure 6-34 Dual Buffer Mode USB Read Access : Buffer Switching when MaxLen is reached In dual buffer mode, the physical assignment of the USB memory pages (page 0 or page 1) to either CPU buffer or USB buffer is controlled automatically in the USB module and cannot be selected by software.
Semiconductor Group
6-42
1997-10-01
On-Chip Peripheral Components C540U / C541U
Another way to initiate buffer switching is setting bit DONE by software. This feature, which is shown in figure 6-35 for USB read access, can be used to transfer a variable number of bytes. The maximum number of bytes to be transferred is still determined by MaxLen, which is not changed when bit DONE is set. The actual packet length (Len1 or Len2) is the number of bytes which have been written to the buffer before bit DONE is set.
Number of Data Bytes DONE = 1 MaxLen Len1 Len2 CPU Buffer DONE = 1
2 3
Page 0 CBF =0
1
Page 1
Page 1 Time
Swap Buffer
Swap Buffer UBF = 1
MaxLen Len1 Len2 USB Buffer UBF = 1 Page 1 Page 0
Page 1
UBF =0 Frame n SOF (n) Set USB read Accesses SOF (n+1) Set CPU write Accesses
UBF = 0 Frame n+1 SOF (n+2) Set
Time
MCT03408
Figure 6-35 Dual Buffer Mode USB Read Access : Buffer Switching by Setting Bit DONE
Semiconductor Group
6-43
1997-10-01
On-Chip Peripheral Components C540U / C541U
If bit SOFDE is set, buffer switching is done automatically after SOF (start of frame) has been detected by the USB. Figure 6-36 describes this functionality for USB read access for this case. The buffer which contains the latest data from the CPU is tagged valid for USB access (UBF=1) at 1 and the buffers are swapped if the USB buffer is empty. After the USB read access has occured at 2 , this buffer assigned to USB is empty again (UBF=0) and can be swapped again as soon as the CPU has filled its buffer (at 3 ). The number of bytes in the buffer is less or equal MaxLen. The MaxLen threshold is always active, but an occurrence of SOF (if SOFDE=1) or setting bit DONE by software are used to tag the CPU buffer full before reaching MaxLen.
Number of Data Bytes
MaxLen Len1 Len2 CPU Buffer
1 3
Page 0
Page 1
CBF =0 Swap Buffer MaxLen Len1 Len2 USB Buffer Page 1 Page 0 Swap Buffer
Time
UBF =0 Frame n SOF (n) Set USB read Accesses SOF (n+1) Set
2
UBF = 0 Time Frame n+1 SOF (n+2) Set
MCT03409
CPU write Accesses
Figure 6-36 Dual Buffer Mode USB Read Access: Buffer Switching on SOF with SOFDE=1
Semiconductor Group
6-44
1997-10-01
On-Chip Peripheral Components C540U / C541U
If the number of data bytes to be transferred is greater than the maximum packet size (given by MaxLen), the data is split up automatically into packets, which are transferred one after the other. Figure 6-37 gives an example of an USB read access, where data from the CPU is split up into two packets. When MaxLen is reached during the CPU write access, the currently active buffer is switched to USB side (UBF=1). The CPU continues writing data to the buffer. When the complete data packet has been written to the buffer by the CPU, bit DONE is set by software to indicate the end of the data packet (CBF=1). In the example, the USB buffer has not been read out. It is still full for the USB and can not be swapped (CBF=UBF=1). When the USB read access has occured (CBF=0), the buffers are automatically swapped and bit SOD is set.
Number of Data Bytes
MaxLen CPU Buffer Page 1 Page 0 DONE = 1 CBF = 1 SOD = 1 Time
1
Page 1
CBF =0 Swap Buffer Page 0 UBF = 1 Swap Buffer
EOD = 1 Page 1
MaxLen USB Buffer
Page 0 UBF = 1
UBF =0 Frame n SOF (n) Set USB read Accesses SOF (n+1) Set CPU write Accesses Frame n+1 SOF (n+2) Set
Time
MCT03410
Figure 6-37 Double Buffer Mode USB Read Access: Data Length greater than Packet Length (MaxLen)
Semiconductor Group
6-45
1997-10-01
On-Chip Peripheral Components C540U / C541U
In general, three criteria for buffer switching are implemented in the USB module : a) For sequential access, the address offset register ADROFF is automatically incremented after each read or write action of the CPU. The address offset value (before incrementing) represents the number of bytes stored in USB memory for a specific endpoint. If the address offset value (after incrementing) reaches the value stored in endpoint length register EPLENn, the currently active buffer is tagged full (USB read access - all bytes have been written by CPU, CBF=1) or empty (USB write access - all bytes have been read by CPU, CBF=0). b) When Bit DONE, which is located in the endpoint buffer status register EPBSn, is set, software buffer switching is initiated. This action is independent from the number of bytes which have been handled by the CPU (possible in sequential access mode (INCE=1) and random access mode (INCE=0)). On CPU read accesses, the buffer is declared empty and bit CBF is cleared. If the buffer assigned to the USB is full (UBF=1), the buffers are immediately swapped. In this case, register EPLENn contains the number of received bytes. On CPU write accesses, two different cases must be distinguished. For random accesses, the number of bytes of one packet is fixed by the value in register EPLENn and does not change. For sequential accesses, the number of written bytes represents the packet size. In this case, the actual value of register ADROFF is transferred to register EPLENn when bit DONE is set. c) The third criteria for buffer switching is the automatic buffer switching on detection of SOF (see figure 6-37). This feature can be individually enabled (SOFDE=1) or disabled (SOFDE=0) by software selectively for each endpoint.
Semiconductor Group
6-46
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.3 USB Memory Buffer Organization The address generation of the USB memory buffer is based on address offset and base address pointer. This scheme allows flexible and application specific buffer allocation and management. The length of an endpoint buffer can be up to 8, 16, 32, or 64 bytes. The start address of each endpoint buffer can be located to memory locations according table 6-9. Table 6-9 USB Buffer Length and Base Addresses Values Buffer Length 8 bytes 16 bytes 32 bytes 64 bytes Valid Buffer Base Addresses 08H, 10H, 18H, 20H, 28H, 30H, 38H, 40H, 48H, 50H, 58H, 60H, 68H, 70H, 78H 10H, 20H, 30H, 40H, 50H, 60H, 70H 20H, 40H, 60H 40H
In order to avoid unused memory space between two endpoint buffers, the largest buffer should be located at the highest address. This structure should be used to allocate USB memory for all endpoint buffers. The base address for the setup packet is always located at address 00H. This leads to a typical USB buffer structure as shown in figure 6-38 with a buffer length of 64 bytes for endpoint 2, 16 bytes for endpoints 1 and 3, 8 bytes for endpoint 0, and a predefined length of 8 bytes for endpoint 0 and the setup token.
7FH
Endpoint 2 Buffer Buffer Block 40H Endpoint 3 Buffer Endpoint 1 Buffer Endpoint 0 Buffer 30H 20H 18H Endpoint 2 Endpoint 3 Endpoint 1 Endpoint 0 Setup Token EPBAn EPLENn
EPBA2=08H EPLEN2=40H EPBA3=06H EPLEN3=10H EPBA1=04H EPLEN1=10H EPBA0=03H EPLEN0=08H Adress 00H 8 Bytes on page 0
Setup Token
00H
Figure 6-38 Endpoint Buffer Allocation (Example: 4 Endpoints) Semiconductor Group 6-47 1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.4 USB Memory Buffer Address Generation The generation of an USB memory address for USB access (read or write) depends on the EPNum (endpoint number) information, which has been transmitted to the USB module during the software initialization procedure. This EPNum information is used for the selection of an endpoint specific base address register. As the maximum data packet length of each endpoint can individually be programmed, there are some fixed start addresses for the endpoints. The user program defines the base address for the first data byte of the corresponding endpoint by writing the endpoint specific base address register EPBAn. The length depends on the amount of data to be read or written. The user must take care to assign a buffer space at least as large as the maximum packet size of the endpoint. The address of the currently accessed byte in the USB memory area of the selected endpoint is defined by an address offset, which must be added to the endpoint base address in order to get the correct address for the USB memory buffer. The structure is shown in figure 6-39.
EPBA 0 PAGE 0 EPBA 1 PAGE 1 EPBA 2 PAGE 2 EPBA 3 PAGE 3 EPBA 4 PAGE 4
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
A06 A05 A04 A03 A16 A15 A14 A13 A26 A25 A24 A23 A36 A35 A34 A33 A46 A45 A44 A43 An6 - An3 EPBAn + ADROFF 0 0 0 An6 An5 An4 An3 0 PAGEn 0 0 0 USB Memory Page 1 Page 0 MUX EPNum of the Actual Endpoint
AO5 AO4 AO3 AO2 AO1 AO0
= USB Memory Addr.
AD6 AD5 AD4 AD3 AD2 AD1 AD0
Note: Only one Bit of the Bit pairs An5/AO5, An4/AO4, An3/AO3 can be set at a time.
MCD03411
Figure 6-39 USB Memory Address Generation With the software initialization of the USB modul as described in section 6.4.5, each endpoint is initialized with the EPNum value which is used at the USB memory address generation to select the actual endpoint base address register. Further, in single buffer mode the bit PAGEn is used to select one of the USB memory pages In dual buffer mode bit PAGEn has no effect.
Semiconductor Group
6-48
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.5
Initialization of USB Module
After a hardware reset operation bits PCLK, SPEED, and UCLK are set to 0. Depending on the required operating mode of the USB module a well defined procedure must be executed for switching on the clock for the USB module : - Full speed mode USB PLL is switched on by setting bit PCLK waiting 3 ms for PLL being locked setting bit UCLK setting bit UCLK only
- Low speed mode
This switch-on procedure after a hardware reset assures a proper operation of the USB clock system. When the USB clock system is switched on, a software initialization procedure must follow This procedure must execute the following steps : - Setting bit SWR in register DCR starts the software reset operation for the complete USB module. For a full speed device, bit SPEED must be set together with SWR in the same instruction (write protection of SPEED bit). - When the software reset is finished, bit SWR is cleared by hardware and bit DINIT is set to indicate the start of the initialization sequence. - The USB module must be functionally initialized from the CPU by writing five configuration bytes for each endpoint to the USBVAL register. Thereafter, bit DONE0 in register EPBS0 must be set by software. Figure 6-40 shows the 5-byte configuration block which must be transmitted by the CPU to the USB module via the USBVAL register for each endpoint. The gray shaded fields have a fixed "0" or "1" value for each endpoint while the white bitfields have to be filled by parameters according table 610.
Byte 0 Byte 1 Byte 2 Byte 3 Byte 4
0 0 0
EPNum EPType EPPackSize
0 EPDir
1 msb
0
0
EPPackSize lsb 0
0 0
0 0
0 0
0 0
0 0 0
EPNum 0 0
Constant data for each USB configuration block Figure 6-40 USB Configuration Block The five byte USB configuration block must be transfered sequentially (byte 0 to byte 4) from the CPU to the USB module for each endpoint beginning with endpoint 0, followed by the USB configuration block for endpoint 1 and so on up to the USB configuration block for endpoint 4.
Semiconductor Group
6-49
1997-10-01
On-Chip Peripheral Components C540U / C541U
EPNum is set to 000B, 001B, .... up to 100B for endpoints 0 up to 4. After this action, bit DINIT is reset by hardware and the software reset and initialization sequence are finished. Table 6-10 Bitfield Definition of USB Configuration Block Bitfield EPNum Description This 3-bit field specifies the number of the endpoint (0-4) for which the actual configuration byte block is valid. This 3-bit field must be referenced in byte 0 and byte 3 of a configuration byte block. This 2-bit field defines the type of the endpoint 00 : Control endpoint 01 : Isochronous endpoint 10 : Bulk endpoint 11 : Interrupt endpoint Endpoint 0 must be setup for control endpointThis bit defines the direction of the endpoint 0 : In (packets to be transferred from CPU to Host) 1 : Outr (packets to be transferred from Host to CPU) This 10-bit field defines the maximum packet size to be transferred to this endpoint within the range from zero up to 1023 bytes. The configuration of EPPackSize has to be in harmony to the USB specification.
EPType
EPDir
EPPackSize
Semiconductor Group
6-50
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.6 Control Transfer A control transfer consists of at least two and perhaps three stages. This chapter gives a short description of these stages of a control transfer and the associated configuration of the control and status bits. 6.4.6.1 Setup Stage
Control transfer always begin with a setup stage that transfers information to a target device, defining the type of request being made to the USB device. The standard commands except the "set_descriptor" and "get_descriptor" command are handled by the USB module automatically without CPU interaction. If the command is not handled by the USB module automatically, a setup interrupt (bit SUI is set) indicates the end of a setup phase. Additionally, the status and control bits UBF, CBF and SOD are reset. 6.4.6.2 Data Stage
This stage is defined only for requests that require data tranfers. The direction of this data stage is always predicted to be from Host to Device (bit DIR is automatically cleared after the setup stage occured). The first data packet may immediately be send from the Host to the control endpoint according to this configuration of bit DIR, while NACK will be automatically returned from the Device to the Host in case of USB read access. The configuration of bit DIR=0 predicts an USB write access, while an USB read access causes automatically a NACK (no acknowledge) to be generated and the direction bit to be changed (DIR=1, USB read access). The direction of the next transfer can also be predicted under software control (bit SETWR is set) to be an USB read access (DIR=1). This feature is used, if the direction of the data stage is known and the data packet to be transferred from the CPU to the Host is set up before the next USB access occured. Therefore, the direction bit must be changed under software control, to be able to transfer the data packet within the first USB read access. Status bit SOD is set under hardware control to indicate valid data to be read by CPU in case of USB write access, or data to be written by CPU in case of USB read access. 6.4.6.3 Status Stage
The status stage is always performed to report the result of the requested operation. A status stage initiated by the Host, but not terminated according to the configuration of ESP (ESP=0) is indicated by a status interrupt (bit STI is set). Bit ESP has to be set under software control to enable the acknowledge of the status stage.
Semiconductor Group
6-51
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.7 Register Set Two different kinds of registers are implemented in the USB module. The global registers (GEPIR, EPSEL, ADROFF, USBVAL) describe the basic functionality of the complete USB module and can be accessed via unique SFR addresses. For reduction of the number of SFR addresses which are needed to control the USB module inside the C540U/C541U, device registers and endpoint registers are mapped into an SFR address block of seven SFR addresses (C1H to C7H). The endpoint specific functionality of the USB module is controlled via the device registers DCR, DPWDR, DIER, DIRR and the frame number registers. An endpoint register set is available for each endpoint (n=0..4) and describes the functionality of the selected endpoint. Figure 6-41 explains the structure of the USB module registers.
Global Registers GEPIR (D6 H ) 0 0 0 .4 .3 .2 .1 .0 ADROFF (D4 H ) 0 0 .5 .4 .3 .2 .1 .0
USBVAL (D3 H ) EPSEL (D2 H )
.7 .6 .5 .4 .3 .2 .1 .0
.7 0 0 0 0 .2 .1 .0 Decoder
Device Registers C1 H C3 H C4 H C6 H C7 H DCR
Endpoint 0 Registers C1 H EPBC0 C2 H EPBS0 C3 H C4 H EPIE0 EPIR0
Endpoint 1 Registers C1 H EPBC1 C2 H EPBS1 C3 H C4 H EPIE1 EPIR1
Endpoint 2 Registers C1 H EPBC2 C2 H EPBS2 C3 H C4 H EPIE2 EPIR2
Endpoint 3 Registers C1 H EPBC3 C2 H EPBS3 C3 H C4 H EPIE3 EPIR3
Endpoint 4 Registers C1 H EPBC4 C2 H EPBS4 C3 H C4 H EPIE4 EPIR4
C2 H DPWDR DIER DIRR
C5 H reserved FNRL FNRH
C5 H EPBA0 C6 H EPLEN0 C7 H reserved
C5 H EPBA1 C6 H EPLEN1 C7 H reserved
C5 H EPBA2 C6 H EPLEN2 C7 H reserved
C5 H EPBA3 C6 H EPLEN3 C7 H reserved
C5 H EPBA4 C6 H EPLEN4 C7 H reserved
MCD03312
Figure 6-41 Register Structure of the USB Module
Note: In the description of the USB module registers bits are marked as "rw", "r", or "w". Bits marked as "rw" can be read and written. Bits marked as "r" can be read only. Writing any value to "r" bits has no effect. Bits marked as "w" are used to execute internal commands which are triggered by writing a 1. Writing a 0 to "w" bits has no effect. Reading "w" bits returns a 0.
Semiconductor Group
6-52
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.7.1
Global Registers
The global registers GEPIR, EPSEL, ADROFF, and USBVAL describe the global functionality of the USB module and can be accessed via unique SFR addresses. The Endpoint Select Register EPSEL contains 4 bits which are used to select one of the register blocks of the five endpoint register blocks or the device register block. These register blocks are mapped to the same SFR address range of C1H to C7H. USB Endpoint Select Register EPSEL (Address D2H) Bit No. D2H MSB 7 EPS7 rw Bit EPS7 EPS2 EPS1 EPS0 Reset Value : 80H LSB 0 EPS0 rw EPSEL
6 0 r
5 0 r
4 0 r
3 0 r
2 EPS2 rw
1 EPS1 rw
Function Endoint / device register block select bits These four bits select the active register block of endpoint or device registers. EPS7 1 0 0 0 0 0 0 0 EPS2 X 0 0 0 0 1 1 1 EPS1 X 0 0 1 1 0 0 1 EPS0 X 0 1 0 1 0 1 X Selected Register Device register set selected Endpoint 0 register set selected Endpoint 1 register set selected Endpoint 2 register set selected Endpoint 3 register set selected Endpoint 4 register set selected reserved reserved
Table 6-11 shows the register definitions of each endpoint or device register block in detail.
Semiconductor Group
6-53
1997-10-01
On-Chip Peripheral Components C540U / C541U
Table 6-11 Endpoint/Device Register Set Address Assignment EPSEL 1XXXXXXXB SFR Addr. C1H C2H C3H C4H C5H C6H C7H C1H C2H C3H C4H C5H C6H C7H Selected Register DCR : Device Control Register DPWDR: Device Power Down Register DIER : Device Interrupt Enable Register DIRR : Device Interrupt Request Register reserved address FNRL : Frame Number Register (low byte) FNRH : Frame Number Register (high byte) EPBCn : EPBSn : EPIEn : EPIRn : EPBAn : EPLENn: Endpoint n Buffer Control Register Endpoint n Buffer Status Register Endpoint n Interrupt Enable Register Endpoint n Interrupt Request Register Endpoint n Base Address Register Endpoint n Buffer Length Register reserved address (n=0-4) (n=0-4) (n=0-4) (n=0-4) (n=0-4) (n=0-4)
(Device register block selected)
0XXXXnnnB (nnn = 000B to 100B) (Endpoint nnnB register block selected)
The data transfers between USB memory and the CPU are handled via the SFR USBVAL. With a CPU write access to USBVAL, the value written into it is transferred to the USB memory location which is defined by the content of the endpoint specific endpoint base address register EPBAn and the content of the address offset register ADROFF. At USB memory read accesses from the CPU the data is transfered in reverse direction. A write operation to USBVAL is only successfull if either DIR=0 and CBF=1 (write operation) or DIR=1 and CBF=0 (read operation). USB Data Register USBVAL (Address D3H) Bit No. D3H MSB 7 .7 rw Bit USBVAL.7-0 6 .6 rw Function USB data value USBVAL stores the 8-bit data byte during transfers from CPU to USB memory and from USB memory to CPU. Bit NOD in the EPIRn register indicates when the CPU processes an USBVAL read operation with an empty USB buffer or a USBVAL write operation to a full USB buffer. 5 .5 rw 4 .4 rw 3 .3 rw 2 .2 rw 1 .1 rw Reset Value : 00H LSB 0 .0 rw USBVAL
Semiconductor Group
6-54
1997-10-01
On-Chip Peripheral Components C540U / C541U
In most cases the CPU accesses only one endpoint buffer until it is full (CBF=1 at CPU write access) or empty (CBF=0 at CPU read access). As the USB memory size is 128 bytes per page, the maximum packet length is limited to 64 bytes. Therefore, only the lowest 6 bits of ADROFF (AO5..AO0) are required for offset definiton. A write operation to ADROFF is only successfull if either DIR=0 and CBF=1 (write operation) or DIR=1 and CBF=0 (read operation). USB Address Offset Register ADROFF (Address D4H) Bit No. D4H MSB 7 0 r Bit AO5-0 Reset Value : 00H LSB 0 AO0 rw ADROFF
6 0 r
5 AO5 rw
4 AO4 rw
3 AO3 rw
2 AO2 rw
1 AO1 rw
Function USB address offset register AO5-0 stores the 6-bit offset address for USB memory buffer addressing by the CPU.
After each modification (automatical or by write action) of the address offset register ADROFF, the value pointed to is automatically read out of USB memory and transferred to register USBVAL.
Semiconductor Group
6-55
1997-10-01
On-Chip Peripheral Components C540U / C541U
The global endpoint interrupt request register GEPIRn (n=0-4) contains one flag for each endpoint which indicates whether one or more of the eight endpoint specific interrupt requests have become active. If a request flag in GEPIR is set, it is automatically cleared after a read operation of the corresponding endpoint specific EPIRn register. USB Global Endpoint Interrupt Request Register GEPIR (Address D6H) Bit No. D6H MSB 7 0 r Bit EPI4 EPI3 EPI2 EPI1 EPI0 6 0 r Function Endpoint 4 interrupt request flag If EPI4 is set, an endpoint 4 interrupt request is pending. Endpoint 3 interrupt request flag If EPI3 is set, an endpoint 3 interrupt request is pending. Endpoint 2 interrupt request flag If EPI2 is set, an endpoint 2 interrupt request is pending. Endpoint 1 interrupt request flag If EPI1 is set, an endpoint 1 interrupt request is pending. Endpoint 0 interrupt request flag If EPI0 is set, an endpoint 0 interrupt request is pending. 5 0 r 4 EPI4 r 3 EPI3 r 2 EPI2 r 1 EPI1 r Reset Value : 00H LSB 0 EPI0 r GEPIR
Bit 4 (GEPIEn) of the specific endpoint buffer control register EPBCn must be set if EPIn should generate an interrupt. Additionally, bit EA (IEN0.7) and bit EUEI (IEN1.1) must be set when an endpoint interrupt should be triggered.
Semiconductor Group
6-56
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.7.2
Device Registers
The device registers can only be accessed when global register EPSEL(D2H) = 80H. The following SFRs are defined as device register : - - - - - - DCR PDWDR DIER DIRR FNRL FNRH Device Control Register Device Power Down Register Device Interrupt Enable Register Device Interrupt Request Register Frame Number Register (low byte) Frame Number Register (high byte)
The device control register includes control and status bits which indicate the current status of the USB module and the status of the USB bus. USB Device Control Register DCR (Address C1H) Bit No. C1H MSB 7 SPEED rw Bit SPEED 6 DA r 5 SWR rw 4 SUSP r 3 DINIT r 2 RSM rw Reset Value : 000X0000B 1 UCLK rw LSB 0 PCLK rw DCR
Function Low / full speed select Bit SPEED configures the USB module in the C540U/C541U for full speed (12 MBaud) or low speed (1.5 MBaud) mode. This bit can only be written with bit SWR=1 (software reset). After hardware reset the USB module runs in low speed mode and the PLLx4 is automatically disabled. If SPEED=0, low speed mode selected (default after reset) If SPEED=1, full speed mode selected. Device attached Bit DA reflects the state of pin DADD, which can be used to indicate whether the device is attached to the USB bus or not in self-powered mode. If pin DADD is 0, bit DA=0. If pin DADD is 1, bit DA=1. Software reset Setting bit SWR initiates a software reset operation of the USB device. This bit is cleared by hardware after successful reset operation. SWR can not be reset by software. Suspend mode This bit is set when the USB is idle for more than 3 ms. It will remain set until there is a non idle state on the USB cable or when bit RSM is set.
DA
SWR
SUSP
Semiconductor Group
6-57
1997-10-01
On-Chip Peripheral Components C540U / C541U
Bit DINIT
Function Device initialization in progress At the end of a software reset, bit DINIT is set by hardware. After software reset of the USB module, the USB module must be initialized by the CPU. When DINIT is set after a software reset, 5 bytes for each endpoint must be written to SFR USBVAL. After the 25th byte, bit DONE0 has to be set by software. Bit DINIT is reset by software after a successful initialization sequence. Resume bus activity When the USB device is in suspend mode, setting bit RSM resumes bus activity of the device. In response to this action, the USB will disassert the suspend bit and will perform the remote wake-up operation. Writing 0 to RSM has no effect, the bit is reset if bit SUSP is 0. UDC clock selection Bit UCLK controls the functionality of the USB core clock in full speed mode (SPEED=1) as well as in low speed mode (SPEED=0).. If UCLK=0, the USB core clock (48 MHz or 6 MHz) is disabled. If UCLK=1, the USB core clock (48 MHz or 6 MHz) is enabled. PLL clock select Bit PCLK controls the 48 MHz PLL. If PCLK=0, the 48 MHz PLL is disabled (default after reset). If PLCK=1, the 48 MHz PLL is enabled. For power consumption and EMI reasons, the 48 MHz PLL should be disabled in low speed mode (SPEED=0).
RSM
UCLK
PCLK
Semiconductor Group
6-58
1997-10-01
On-Chip Peripheral Components C540U / C541U
The device power down register DPWDR includes two bits which allow to switch off the USB transmitter and receiver circuitry selectively for power down mode operation. USB Device Power Down Register DPWDR (Address C2H) Bit No. C2H MSB 7 0 r Bit TPWD 6 0 r Function USB Transmitter Power Down Setting bit TPWD puts the USB transmitter into power down mode. After a wakeup from software power down mode operation, bit TPWD must be cleared by software to enable again data transmission. If TPWD=0, the transmitter is active (default after reset). If TPWD=1, the transmitter is in power down mode. USB Receiver Power Down Setting bit RPWD puts the USB receiver into power down mode. After a wake-up from software power down mode operation, bit RPWD must be cleared by software to enable again data reception. If RPWD is set, the USB bus cannot wake-up the C540U/C541U form power down mode. If RPWD=0, the USB receiver is active (default after reset). If RPWD=1, the USB receiver is in power down mode. 5 0 r 4 0 r 3 0 r 2 0 r 1 TPWD rw Reset Value : 00H LSB 0 RPWD rw DPWDR
RPWD
Semiconductor Group
6-59
1997-10-01
On-Chip Peripheral Components C540U / C541U
The device interrupt enable register DIER contains the enable bits for the different types of device interrupts. With these bits, the device interrupts can be individually enabled or disabled. The general device interrupt enable bit EUDI is located in SFR IEN1. A device interrupt can be only generated if EUDI and EA (global interrupt enable bit in IEN0) are set too. USB Device Interrupt Enable Register DIER (Address C3H) Bit No. C3H MSB 7 SE0IE rw Bit SE0IE 6 DAIE rw 5 DDIE rw 4 SBIE rw 3 SEIE rw 2 STIE rw 1 SUIE rw Reset Value : 00H LSB 0 SOFIE rw DIER
Function Single ended zero Interrupt Enable Setting bit SE0IE enables the generation of a device interrupt each time a single ended zero is detected for more than 2.5s (reset by host, not EOP). If SE0IE=0, the single ended zero interrupt is disabled. If SE0IE=1, the single ended zero interrupt is enabled. Device attached interrupt enable Setting bit DAIE enables the generation of a device interrupt when it is attached to the USB bus. If DAIE=0, the device attached interrupt is disabled. If DAIE=1, the device attached interrupt is enabled. Device detached interrupt enable Setting bit DDIE enables the generation of a device interrupt when it is detached from the USB bus. If DDIE=0, the device detached interrupt is disabled. If DDIE=1, the device detached interrupt is enabled. Suspend begin interrupt enable Setting bit SBIE enables the generation of a device interrupt if bit SBI is set, this means the suspend mode is entered. If SBIE=0, the suspend begin interrupt is disabled. If SBIE=1, the suspend begin interrupt is enabled. Suspend change interrupt enable Setting bit SEIE enables the generation of a device interrupt if bit SEI is set, this means the suspend mode is left. If SEIE=0, the suspend change interrupt is disabled. If SEIE=1, the suspend change interrupt is enabled. Status interrupt enable Bit STIE enables the generation of a device interrupt at the end of the status phase of a control transfer. If STIE=0, the status interrupt is disabled. If STIE=1, the status interrupt is enabled.
DAIE
DDIE
SBIE
SEIE
STIE
Semiconductor Group
6-60
1997-10-01
On-Chip Peripheral Components C540U / C541U
Bit SUIE
Function Setup interrupt enable Bit SUIE enables the generation of a device interrupt on a succesful reception of a setup packet which must be processed by the CPU. If SUIE=0, the setup interrupt is disabled. If SUIE=1, the setup interrupt is enabled. Start of frame interrupt enable bit SOFIE enables the generation of a device interrupt on the detection of a start of frame packet on the USB. If SOFIE=0, the start of frame interrupt is disabled. If SOFIE=1, the start of frame interrupt is enabled.
SOFIE
Semiconductor Group
6-61
1997-10-01
On-Chip Peripheral Components C540U / C541U
The device interrupt request register DIRR contains the interrupt request flags of the different types of device interrupts. All Interrupt request flags in DIRR are reset by hardware after DIRR has been read. USB Device Interrupt Request Register DIRR (Address C4H) Bit No. C4H MSB 7 SE0I r Bit SE0I 6 DAI r Function Single ended zero interrupt Bit SE0I is set each time a single ended zero is detected for equal or greater than 2.5s. EOP (2 bit times) is not detected. Device attached interrupt Bit DAI is automatically set after detection of the USB device being attached to the USB bus. Device detached interrupt Bit DDI is automatically set after detection of the device being detached from the USB bus. Suspend begin interrupt Bit SBI is automatically set when the suspend mode is entered. Suspend end interrupt Bit SBI is automatically set when the suspend mode is left. Status interrupt Bit STI is set if the host requests a status transfer and the device answers with NACK (if bit ESP is set, the device answers with ACK and STI is not set). Setup interrupt Bit SUI is automatically set after a successful reception of a setup packet which is not handled by the USB module and must be forwarded to the CPU. The setup packet itself is limited to 8 bytes and is stored at USB memory adresses 00H to 07H and can be accessed with EPSEL.7=1. If a setup interrupt occurs (STI is set), the control and status bits UBF0, CBF0, SOD0, and DIR0 in the endpoint 0 registers EPBS0 and EPIR0 are cleared. DIR0=0 predicts the direction of the next USB access (data phase) to be from host to CPU. Bit DIR0 is automatically set (CPU to host), if the host tries to perform a read access in the first data packet. Start of frame Bit SOF is automatically set after detection of a start of frame packet on the USB. 5 DDI r 4 SBI r 3 SEI r 2 STI r 1 SUI r Reset Value : 00H LSB 0 SOFI r DIRR
DAI
DDI
SBI SEI STI
SUI
SOFI
Semiconductor Group
6-62
1997-10-01
On-Chip Peripheral Components C540U / C541U
The frame number registers stores an 11-bit value which defines the number of an USB frame. The frame number rolls over upon reaching its maximum value of 7FFH. The FNRH/FNRL registers are read only registers which are reset to 00H by a hardware reset. Frame Number Register High Byte FNRH (Address C7H) Frame Number Register Low Byte FNRL (Address C6H) Bit No. C7H MSB 7 0 r C6H FNR7 r Bit FNR10-0 Reset Value : 00000XXXB Reset Value : XXH LSB 0 FNR8 r FNR0 r FNRL FNRH
6 0 r FNR6 r
5 0 r FNR5 r
4 0 r FNR4 r
3 0 r FNR3 r
2 FNR10 r FNR2 r
1 FNR9 r FNR1 r
Function Frame number value FNRH.2-.0 and FNRL.7-.0 hold the current 11-bit frame number of the latest SOF token. FNRL holds the lowest 8 bits while FNRH holds the upper 3 bits of the frame number.
Semiconductor Group
6-63
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.7.3
Endpoint Registers
Each of the five endpoints has its own endpoint register set which contains the following registers (n=0-4) : - - - - - - EPBCn EPBSn EPIERn EPIRRn EPBAn EPLENn Endpoint n Buffer Control Register Endpoint n Buffer Status Register Endpoint n Interrupt Enable Register Endpoint n Interrupt Request Register Endpoint n Base Address Register Endpoint n Buffer Length Register
The endpoint buffer control registers control the endpoint specific operations. Endpoint 1 Buffer Control RegisterEPBCn, n=0-4 (Address C1H) Bit No. C1H MSB 7 STALLn rw Bit STALLn 6 0 r 5 0 r 4 3 2 1 0 r Reset Value : 00H LSB 0 DBMn rw EPBCn
GEPIEn SOFDEn INCEn rw rw rw
Function Endpoint stall Bit STALL can be set to indicate that the endpoint is stalled. If STALL=0, the endpoint n is active. If STALL=1, the endpoint n is stalled. Note : If the stall bit for endpoint 0 (STALL0) is set, the next incoming setup token will automatically clear it. Global endpoint interrupt enable Bit GEPIEn enables or disables the generation of the global endpoint interrupt n based on the endpoint specific interrupt request bits in register EPIRn. If GEPIE=0, the USB endpoint n interrupt is disabled. If GEPIE=1, the USB endpoint n interrupt is enabled. Start of frame done enable If bit SOFDE is set, the current CPU buffer in USB memory is automatically tagged full (data flow from the CPU to the USB) or empty (data flow from the USB to the CPU) on each detection of a start of frame on the USB (auto-done). If SOFDE=0, no action on SOF. If SOFDE=1, the automatical generation of DONE on SOF is enabled.
GEPIEn
SOFDEn
Semiconductor Group
6-64
1997-10-01
On-Chip Peripheral Components C540U / C541U
Bit INCEn
Function Auto increment enable If bit INCE is set, the address offset register ADROFF for CPU access to USB memory is automatically incremented after each data write or data read action of the USBVAL register. This allows the user to handle the USB memory like a FIFO without modification of the address of the desired memory location by software. After each modification of ADROFF the data value pointed to is automatically read out of USB memory and transferred to the USBVAL register. If INCE=0, the auto-increment function is disabled. If INCE=1, the auto-increment function is enabled. Dual buffer mode Bit DBM allows the selection between single buffer mode and dual buffer mode. If DBM=0, single buffer mode is selected. If DBM=1, dual buffer mode is selected.
DBMn
Note: For accessing the EPBCn registers SFR EPSEL(D2H) must be set with the appropriate value.
Semiconductor Group
6-65
1997-10-01
On-Chip Peripheral Components C540U / C541U
The bits of the endpoint buffer status registers indicate the status of the endpoint specific USB memory buffers and allows setting of certain USB memory buffer conditions. Endpoint Buffer Status Register EPBSn, n=0-4 (Address C2H) Bit No. C2H MSB 7 UBFn r Bit UBFn Reset Value : 20H LSB 0 EPBSn
6 CBFn r
5 DIRn r
4
3
2
1
ESPn SETRDn SETWRn CLREPn DONEn w w w w w
Function USB buffer full Bit UBFn indicates the status of the USB memory buffer for endpoint n. USB read access: If UBFn=0, the USB buffer for endpoint n is empty. If UBFn=1, the USB buffer for endpoint n is not empty. USB write access : If UBFn=0, the USB buffer for endpoint n is not full. If UBFn=1, the USB buffer for endpoint n is full. CPU buffer full Bit CBFn indicates the status of the CPU memory buffer for endpoint n. CPU read access: If CBFn=0, the CPU buffer for endpoint n is empty. If CBFn=1, the CPU buffer for endpoint n is not empty. CPU write access: If CBFn=0, the CPU buffer for endpoint n is not full. If CBFn=1, the CPU buffer for endpoint n is full. Direction of USB memory access Bit DIRn indicates the direction of the last USB memory access for endpoint n. If DIRn=0, the last data flow for endpoint n was from host to CPU. If DIRn=1, the last data flow for endpoint n was from CPU to host. Enable status phase If bit ESPn is set, the next status phase of endpoint n will automatically be acknowledged by an ACK except the endpoint n is stalled. If the status phase was successfully completed, bit ESPn is automatically reset by hardware and no status interrupt request (STI) is generated. If the CPU detects a corrupted control transfer (endpoint 0), bit STALL0 should be set by software instead of bit ESP0 in order to indicate an error condition which cannot be recovered by the USB device itself. Note : bit EPSn can only be set by software. Any read operation of register EPBSn returns ESPn=0. Set direction of USB memory buffer to read Bit SETRDn is used to predict the direction of the next USB access for endpoint n as an USB read access. A faulty prediction causes no errors since the USB module determines the real direction. A change in the data direction is only executed, if both USB memory buffers are empty. SETRD cannot be set together with CLREPn because a change of bit DIRn during a transfer is not allowed. Note : bits SETRDn and SETWRn must not be set at a time.
CBFn
DIRn
ESPn
SETRDn
Semiconductor Group
6-66
1997-10-01
On-Chip Peripheral Components C540U / C541U
Bit SETWRn
Function Set direction of USB memory buffer to write Bit SETWRn is used to predict the direction of the next USB access for endpoint n as an USB write access. A faulty prediction causes no errors since the USB module determines the real direction. A change in the data direction is only executed, if both USB memory buffers are empty. SETWR cannot be set together with CLREPn because a change of bit DIRn during a transfer is not allowed. Note : bits SETWRn and SETRDn must not be set at a time. Clear endpoint Setting bit CLREPn will set the address offset register for a CPU access to USB memory to 0. The bits CBFn and UBFn will be reset when CLREPn is set. Bit CLREPn is reset by hardware. A read operation on this bit will always deliver 0. Setting of CLREPn does not change the direction of endpoint n. This means, bit DIRn is not changed. Note: When bits CLREPn and ESPn are set simultaneously with one instruction, bit ESPn remains set and the next status phase is enabled. If only CLREPn is set, bit ESPn is reset and the status phase is disabled. Setting bits CLREPn and SETRDn or SETWRn simultaneously with one instruction is not allowed. This means that the information of SETRDn or SETWRn is ignored in this case. Buffer done by CPU If bit DONE is set, the current USB memory buffer assigned to CPU is automatically tagged full (data flow from the CPU to the USB) or empty (data flow from the USB to the CPU). This bit is reset by hardware after it has been set. A read operation on this bit will deliver always 0. Note: If the direction of endpoint n is read (USB read access) and auto-increment is enabled (INCEn=1) and DONEn is set the content of register ADROFF is copied automatically to register EPLENn of the actual endpoint. Register EPLENn is not changed if the auto-increment capability is disabled (INCEn=0).
CLREPn
DONEn
Semiconductor Group
6-67
1997-10-01
On-Chip Peripheral Components C540U / C541U
The endpoint interrupt enable registers contain the endpoint specific interrupt enable bits. With these bits, the endpoint specific interrupts can be individually enabled or disabled. Additionally to a bit in an EPIEn register, the global interrupt bit EPIn in GEPIR for endpoint n and the general endpoint interrupt bit EUEI in IEN1 and the general interrupt enable bit EA in IEN0 must be set for the interrupt becoming active. Endpoint Interrupt Enable Register EPIEn, n=0-4 (Address C3H) Bit No. C3H MSB 7 AIEn rw Reset Value : 00H LSB 6 5 4 - rw 3 2 1 0 EPIEn
NAIEn RLEIEn rw rw
DNRIEn NODIEn EODIEn SODIEn rw rw rw rw
For accessing EPIEn, SFR EPSEL must be 0nH. Bit AIEn Function USB acknowledge interrupt enable Bit AIEn enables the generation of an endpoint specific acknowledge interrupt when bit ACKn in register EPIRn is set. If AIEn=0, the USB acknowledge interrupt is disabled. If AIEn=1, the USB acknowledge interrupt is enabled. USB not acknowledged interrupt enable Bit NAIEn enables the generation of an endpoint specific not acknowledged interrupt when bit NACKn in register EPIRn is set. If NAIEn=0, the USB not acknowledged interrupt is disabled. If NAIEn=1, the USB not acknowledged interrupt is enabled. Read length error interrupt enable Bit RLEIEn enables the generation of an endpoint specific read length error interrupt when bit RLEn in register EPIRn is set. If RLEIEn=0, the read length error interrupt is disabled. If RLEIEn=1, the read length error interrupt is enabled. Reserved bit for future use. Data not ready interrupt enable Bit DNRIEn enables the generation of an endpoint specific data not ready interrupt when bit DNRn in register EPIRn is set. If DNRIEn=0, the data not ready interrupt is disabled. If DNRIEn=1, the data not ready interrupt is enabled. No data interrupt enable Bit NODIEn enables the generation of an endpoint specific no data interrupt when bit NODn in register EPIRn is set. If NODIEn=0, the no data interrupt is disabled. If NODIEn=1, the no data interrupt is enabled.
NAIEn
RLEIEn
- DNRIEn
NODIEn
Semiconductor Group
6-68
1997-10-01
On-Chip Peripheral Components C540U / C541U
Bit EODIEn
Function End of data interrupt enable Bit EODIEn enables the generation of an endpoint specific end of data interrupt when bit EODn in register EPIRn is set. If EODIEn=0, the end of data interrupt is disabled. If EODIEn=1, the end of data interrupt is enabled. Start of data interrupt enable Bit SODIEn enables the generation of an endpoint specific start of data interrupt when bit SODn in register EPIRn is set. If SODIEn=0, the start of data interrupt is disabled. If SODIEn=1, the start of data interrupt is enabled.
SODIEn
Semiconductor Group
6-69
1997-10-01
On-Chip Peripheral Components C540U / C541U
The endpoint interrupt request register EPIRn contains the interrupt request flags of the different endpoint specific interrupts. In general, the bits in EPIRn are reset by hardware after a EPIRn read operation. Endpoint Interrupt Request Register EPIRn, n=0-4 (Address C4H) Reset Value EPIR0 : 11H Reset Value EPIR1 to EPIR4 : 10H Bit No. C4H MSB 7 ACKn r LSB 0 SODn r EPIRn
6 NACKn r
5 RLEn r
4 - r
3 DNRn r
2 NODn r
1 EODn r
For accessing EPIRn, SFR EPSEL must be 0nH. Bit ACKn NACKn RLEn Function USB acknowledge Bit ACKn=1 indicates a succesful action on the USB. USB not acknowledged Bit NACKn is set for all unsuccessful actions on the USB. Read length error Bit RLEn is automatically set if the number of bytes read by the USB does not correspond to the packet length programmed by the CPU. Reserved bit for future use. Data not ready This bit is set by hardware if the UDC requires an access to USB memory, but no buffer is available. USB Read action : DNRn is set if UBF is not set. USB Write action : DNRn is set if UBF is set. No data This bit indicates an incorrect CPU read or write access to USB memory. It is set if the CPU processes a read access to an empty USB buffer or a write access to a full buffer. NODn is also set if the direction is write (DIRn=0 for USB write access) and the CPU tries to write to the USB memory buffer. End of data USB Read action : EODn is set if the CPU has written a programmable number (MaxLen) of bytes in the transmit buffer. As a result, the buffer is full and no more write actions from the CPU are allowed. USB Write action: EODn is set if the CPU has read a programmable number (USBLen) of bytes out of the receive buffer. As a result, the buffer is empty now and no more read actions from the CPU are allowed.
- DNRn
NODn
EODn
Semiconductor Group
6-70
1997-10-01
On-Chip Peripheral Components C540U / C541U
Bit SODn
Function Start of data USB Read action: SODn is set if the USB has read a fixed number (USBLen) of bytes from the transmit buffer. As a result, the buffer is empty now and the CPU can process write actions again. USB Write action: SODn is set if the USB has written a fixed number (USBLen) of bytes to the receive buffer. As a result, the buffer is full and the CPU can start read actions..
In dual buffer mode bits SODn and EODn can be set simultaneously if the corresponding buffer page is swapped.
Semiconductor Group
6-71
1997-10-01
On-Chip Peripheral Components C540U / C541U
The endpoint base address register defines the location and size (start address and length) of the endpoint specific buffers in the USB memory. See also figure 6-38 for an example of EPBAn and EPLENn register setup. Endpoint n Base Address Register EPBAn, n=0-4 (Address C5H) Reset Value : 00H Endpoint n Buffer Length Register EPLENn, n=0-4 (Address C6H) Reset Val.: 0XXXXXXXB Bit No. C5H MSB 7 PAGEn r C6H 0 r LSB 0 An3 rw Ln0 rw EPLENn EPBAn
6 0 r Ln6 rw
5 0 r Ln5 rw
4 0 r Ln4 rw
3 An6 rw Ln3 rw
2 An5 rw Ln2 rw
1 An4 rw Ln1 rw
Bit PAGEn
Function Buffer page for endpoint n (single buffer mode only) In single buffer mode, the endpoint n can be either located on USB memory buffer page 0 (PAGEn=0) or on USB memory buffer page 1 (PAGEn=1) by clearing or setting this bit. In dual buffer mode this bit has no effect. Note: The SETUP token is always stored on USB memory buffer page 0 at address 00H to 07H. Endpoint n buffer start address The bits 0 to 3 of EPBAn are the address bits A6 to A3 of the USB memory buffer start address for endpoint n. A7 and A2-A0 of the resulting USB memory buffer start address are set to 0. Endpoint n buffer length The bits 0 to 6 if EPLENn define the length of the USB memory buffer for endpoint n and cannot be written if DINIT=1.
An6-An3
Ln6-Ln0
The USB buffer allocation and organization is described in detail in section 6.4.3.
Semiconductor Group
6-72
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.8 On-Chip USB Transceiver The C540U/C541U provides on-chip receiver and transmitter circuitries which allows to connect the C540U/C541U directly to the USB bus. The USB driver circuitry is shown in figure 6-42. The USB transceiver is capable of transmitting and receiving serial date at full speed (12 MBits/s) and low speed (1.5 Mbit/s) data rates. Transceiver and receiver can be separately disabled for power down mode operation. A single ended zero error condition (D+ and D- both at low level) can be detected.
1 0 TPWD DPWDR.1 Transmit Data
30 D+ Pin 30 DPin
Receive Data 1 0 RPWD DPWDR.0
+
MCS03413
Figure 6-42 USB On-chip Driver Circuitry The USB driver circuitry is a differential output driver which drives the USB data signal onto the cable of the USB bus. The static output swing of the transmitter is in low state below 0.3 V with a 1.5 k load to 3.6 V and in high state above 2.8 V with a 15 k load to VSS. The driver outputs support tri-state operation to achieve bi-directional half duplex operation (control bits RPWD and TPWD). High impedance is also required to isolate the port from devices that are connected but powered down. The driver tolerates a voltage on the signal pins of -0.5 V to 3.8 V with respect to local ground reference without damage. This voltage is tolerated for 10.0 s while the driver is active and driving, When the driver is in its high impedance state it tolerates this condition an indefinitely long time. For a full speed USB connection the impedance of the USB driver must be between 29 and 44 . The data line rise and fall times are between 4 ns and 20 ns, smoothly rising or falling (monotonic), and are well matched to minimize RFI emissions and signal skew. Figure 6-42 shows how the full speed driver is realized using two identical CMOS buffers. Figure 6-43 shows the full speed driver signal waveforms. Semiconductor Group 6-73 1997-10-01
On-Chip Peripheral Components C540U / C541U
One Bit Time (12 MB/s)
Driver Signal Pins
V SS
One-Way Trip Cable Delay
Receiver Signal Pins
V SE max V SE min V SS
Signal Pins Pass Input Spec Levels after one Cable Delay
MCT03414
Figure 6-43 Full Speed USB Driver Signal Waveforms For a low speed USB connection the rise and fall time of the signals are greater than 75 ns to keep RFI emissions under FCC class B limits, and less than 300 ns to limit timing delays and signaling skews and distortions. The driver reaches the specified static signal levels with smooth rise and fall times, and minimal reflections and ringing when driving the USB cable (see figure 6-44). This cable and driver are used only on network segments between low speed devices and the ports to which they are connected.
One Bit Time (1.5 MB/s)
Driver Signal Pins
V SE max V SE min V SS
Signal Pins Pass Output Spec Levels with minimal Reflections and ringing
MCT03415
Figure 6-44 Low Speed USB Driver Signal Waveforms
Semiconductor Group
6-74
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.9
Detection of Connected Devices
Full speed and low speed USB devices are differentiated by the position of the pullup resistor on the downstream end of the cable. Full speed devices are terminated with the pull-up on the D+ line and low speed devices are terminated with the pull-up in the D- line (see figure 6-). The pull-up terminator is a 1.5 k resistor tied to a voltage source between 3.0 and 3.6 V referenced to the local ground. When a device is attached to the host or hub, the data line with the pull-up is above 2.8 V and the other data line is near ground (idle state). A connect condition will be detected when one of the data lines is pulled above the single-ended high threshold level for more than 2.5 s (30 full speed data bit times). When a device is detached from the USB, the pull-down resistors will cause both D+ and D- lines to be pulled below the single-ended low threshold of the host or hub port. This creates a state called a single-ended zero (SE0) on the downstream port. A disconnect condition is indicated if an SE0 persists on a downstream port for more than 2.5 s (30 full speed data bit times).
R2
D+ FS / LS USB Transceiver DHost or Hub Port D+ Twisted Pair Shielded 5 meters max. FS / LS USB D- Transceiver Full Speed Device
R1
R1
R2
D+ FS / LS USB Transceiver DHost or Hub Port D+ Unwisted, Unshielded 3 meters max. FS / LS USB D- Transceiver Low Speed Device
MCS03416
R1
R1
Figure 6-45 Low Speed / High Speed Device Cable and Resisitor Connection Resistor R2 has to be external. In some cases it might be necessary to hide the USB device from the host even when it is plugged in. To accomplish this, the pull-up resistor R2 can be made switchable with a port a transistor.
Semiconductor Group
6-75
1997-10-01
On-Chip Peripheral Components C540U / C541U
6.4.10 Detach / Attach Detection The USB device can be used in two different modes concerning its power supply, the bus-powered mode and the self-powered mode. 6.4.10.1 Self-Powered Mode In self-powered mode, the USB device has its own power supply. The USB device has to detect whether it is connected to USB bus or not. This detection is done by hardware by using the DeviceAttached Device-Detached pin DADD as shown in figure 6-46. When the device-attached condition is detected, bit DA in the device control register DCR is set and a device interrupt can be generated if required (bit DAI in SFR DIRR is set). The interrupt service routine of this device interrupt must completely initialize the USB device/module. The device-detached detection resets bit DA (and sets bit DDI in SFR DIRR) and can generate a device interrupt, too.
V CC
P3.1 / DADD 5 k 47 nF 100 k N-Channel FET C540U C541U
V SS
MCS03417
Figure 6-46 Device Attached - Device Detached detection in self-powered mode 6.4.10.2 Bus-Powered Mode In bus-powered mode, the USB device is driven by the power supply from the USB bus. The maximum power consumption is given by the USB specification. In order to respect this specification, the power consumption in suspend mode should not exceed 500 A. An explicit device-attached detection in this mode is not necessary. If the CPU is running, the device is attached, so the USB device/module has to be configured only after power-on. The device-detach action has no significance concerning software, because the device is no longer powered and the CPU stops. As a result, no attach-detach detection is needed. In this mode, pin DADD can be used as standard IO pin with bit DA monitoring its status and the interrupt generation on DA should not be used. If the interrupt generation on bit DA remains activated, a request must not be interpreted as attached-detached action, but as an external interrupt request on pin DADD, which is generating a device interrupt.
Semiconductor Group
6-76
1997-10-01
Interrupt System C540U / C541U
7
Interrupt System
The C541U provides seven (C540U : six) interrupt sources with two priority levels. Five interrupts can be generated by the on-chip peripherals (timer 0, timer 1, SSC interface, and USB module), and two interrupts may be triggered externally (P3.2/INT0 and P3.3/INT1). Figure 7-47 and 7-48 give a general overview of the interrupt sources and illustrate the request and control flags which are described in the next sections.
Low Priority Timer 0 Overflow TF0 TCON.5 ET0 IEN0.1 Timer 1 Overflow TF1 TCON.7 ET1 IEN0.3 P3.2 / INT0 IT0 TCON.0 ITCON.1 ITCON.0 1 IE0 TCON.1 EX0 IEN0.0 0003H PX0 IP0.0 001BH PT1 IP0.3 000BH PT0 IP0.1 High Priority
P3.3 / INT1 IT1 TCON.2 ITCON.3 Bit addressable ITCON.2
1 IE0 TCON.3 EX1 IEN0.2 EA IEN0.7 0013H PX1 IP0.2
Request Flag is cleared by hardware
Figure 7-47 Interrupt Request Sources (Part 1)
Semiconductor Group
7-1
1997-10-01
Interrupt System C540U / C541U
Endpoint Interrupts
Endpoint 4 Interrupts Endpoint 3 Interrupts Endpoint 2 Interrupts Endpoint 1 Interrupts Endpoint 0 Interrupts ACK0 EPIR0.7
NACK0
AIE0 EPIE0.7 NAIE0 EPIE0.6 RLEIE0 EPIE0.5 DNRIE0 EPIE0.3 NODIE0 EPIE0.2 EODIE0 EPIE0.1 SODIE0 EPIE0.0 GEPIE0
EPIR0.6 RLE0 EPIR0.5 DNR0 EPIR0.3 NOD0 EPIR0.2 EOD0 EPIR0.1 SOD0 EPIR0.0
>1 EPI0 GEPIR.0 >1 Low Priority High Priority EUEI IEN1.1 EPBC0.4 004B H PUEI IP1.1
WCOL SSC Interrupts (C541U only) SCF.1 WCEN SCIEN.1 ESSC TC SCF.0 Bit addressable Request flag is cleared by hardware after the corresponding register has been read.
MCB03382
>1
0043 H PSSC EA IEN0.7 IP1.0
IEN1.0 TCEN SCIEN.0
Figure 7-48 Interrupt Request Sources (Part 2)
Semiconductor Group
7-2
1997-10-01
Interrupt System C540U / C541U
Device Interrupts
SE0I DIRR.7 DAI DIRR.6 DDI DIRR.5 SBI DIRR.4 SEI DIRR.3 STI DIRR.2 SUI DIRR.1 SOFI DIRR.0
SE0IE DIER.7 DAIE DIER.6 DDIE DIER.5 SBIE DIER.4 SEIE DIER.3 STIE DIER.2 SUIE DIER.1 SOFIE DIER.0
>1 Low Priority High Priority EUDI IE1.2 0053 H PUDI IP1.2
EA IE0.7
Bit addressable Request flag is cleared by hardware after the corresponding register has been read.
MCB03383
Figure 7-49 Interrupt Request Sources (Part 3)
Semiconductor Group
7-3
1997-10-01
Interrupt System C540U / C541U
7.1
Interrupt Registers
7.1.1 Interrupt Enable Registers Each interrupt vector can be individually enabled or disabled by setting or clearing the corresponding bit in the interrupt enable registers IEN0 or IEN1. Register IEN0 also contains the global disable bit (EA), which can be cleared to disable all interrupts at once. The SSC and USB interrupts sources have further enable bits for individual interrupt control. Such interrupt enable bits are controlled by specific bits in the SFRs of the corresponding peripheral units. The IEN0 register contains the general enable/disable flags of the external interrupts 0 and 1 as well as the timer interrupts. The SSC interrupt (C540U only) and the two USB interrupts are enabled/ disabled by bits in the IEN1 register. After reset the enable bits of IEN0 and IEN1 are set to 0. That means that the corresponding interrupts are disabled.
Special Function Registers IEN0 (Address A8H) Bit No. MSB AFH A8H EA AEH - ADH - ACH - ABH ET1 AAH EX1
Reset Value : 0XXX0000B LSB A9H ET0 A8H EX0 IEN0
Bit EA
Function Enable/disable all Interrupts If EA=0, no interrupt will be acknowledged. If EA=1, each interrupt source is individually enabled or disabled by setting or clearing its enable bit. Not implemented. Reserved for future use. Timer 1 overflow interrupt enable If ET1 = 0, the timer 1 interrupt is disabled If ET1 = 1, the timer 1 interrupt is enabled. External interrupt 1 enable If EX1 = 0, the external interrupt 1 is disabled. If EX1 = 1, the external interrupt 1 is enabled. Timer 0 overflow interrupt enable If ET0 = 0, the timer 0 interrupt is disabled If ET0 = 1, the timer 0 interrupt is enabled. External interrupt 0 enable If EX0 = 0, the external interrupt 0 is disabled. If EX0 = 1, the external interrupt 0 is enabled.
- ET1
EX1
ET0
EX0
Semiconductor Group
7-4
1997-10-01
Interrupt System C540U / C541U
Special Function Registers IEN1 (Address A9H) Special Function Registers SCIEN (C541U only, Address ACH) Bit No. A9H MSB 7 -
Reset Value : XXXXX000B Reset Value : XXXXXX00B LSB
6 -
5 -
4 -
3 -
2 EUDI
1 EUEI
0 ESSC IEN1
ACH
-
-
-
-
-
-
WCEN
TCEN
SCIEN
Bit - EUDI
Function Not implemented. Reserved for future use. Enable USB device interrupt enable If EUDI = 0, the general USB device interrupt is disabled. If EUDI = 1, the general USB device interrupt is enabled. Enablel USB endpoint interrupt If EUEI = 0, the general USB endpoint interrupt is disabled. If EUEI = 1, the general USB endpoint interrupt is enabled. SSC general interrupt enable (C541U only) If ESSC = 0, the SSC general interrupt is disabled. If ESSC = 1, the SSC general interrupt is enabled. SSC write collision interrupt enable (C541U only) If WCEN = 0, the SSC write collision interrupt is disabled. If WCEN = 1, the SSC write collison interrupt is enabled. Additionally, bit ESSC must be set if the SSC write collision interrupt should be generated. SSC transfer completed interrupt enable (C541U only) If TCEN = 0, the SSC transfer completed interrupt is disabled. If TCEN = 1, the SSC transfer completed interrupt is enabled. Additionally, bit ESSC must be set if the SSC transfer completed interrupt should be generated.
EUEI
ESSC
WCEN
TCEN
Semiconductor Group
7-5
1997-10-01
Interrupt System C540U / C541U
Special Function Registers DIER (Address C3H) Bit No. C3H MSB 7 SE0IE
Reset Value : 00H LSB
6 DAIE
5 DDIE
4 SBIE
3 SEIE
2 STIE
1 SUIE
0 SOFIE DIER
For accessing DIER, SFR EPSEL must be 80H. Bit SE0IE Function USB single ended zero interrupt enable If SE0IE=0, the single ended zero interrupt is disabled. If SE0IE=1, the single ended zero interrupt is enabled USB device attached interrupt enable If DAIE=0, the USB device attached interrupt is disabled. If DAIE=1, the USB device attached interrupt is enabled. USB device detached interrupt enable If DDIE=0, the USB device detached interrupt is disabled. If DDIE=1, the USB device detached interrupt is enabled. USB suspend begin interrupt enable If SBIE=0, the USB suspend begin interrupt is disabled. If SBIE=1, the USB suspend begin interrupt is enabled. USB suspend change interrupt enable If SEIE=0, the USB suspend change interrupt is disabled. If SEIE=1, the USB suspend change interrupt is enabled. USB status interrupt enable If STIE=0, the USB status interrupt is disabled. If STIE=1, the USB status interrupt is enabled. USB setup interrupt enable If SUIE=0, the USB setup interrupt is disabled. If SUIE=1, the USB setup interrupt is enabled. USB start of frame interrupt enable If SOFIE=0, the USB start of frame interrupt is disabled. If SOFIE=1, the USB start of frame interrupt is enabled.
DAIE
DDIE
SBIE
SEIE
STIE
SUIE
SOFIE
Semiconductor Group
7-6
1997-10-01
Interrupt System C540U / C541U
Special Function Registers EPIEn, n=0-4 (Address C3H) Bit No. MSB 7 AIEn
Reset Value : 00H LSB
6
5
4 -
3
2
1
0 EPIEn
C3H
NAIEn RLEIEn
DNRIEn NODIEn EODIEn SODIEn
For accessing EPIEn, SFR EPSEL must be 0nH. Bit AIEn Function USB acknowledge interrupt enable If AIEn=0, the USB acknowledge interrupt is disabled. If AIEn=1, the USB acknowledge interrupt is enabled. USB not acknowledged interrupt enable If NAIEn=0, the USB not acknowledged interrupt is disabled. If NAIEn=1, the USB not acknowledged interrupt is enabled. USB read length error interrupt enable If RLEIEn=0, the USB read length error interrupt is disabled. If RLEIEn=1, the USB read length error interrupt is enabled. Reserved bit for future use. USB data not ready interrupt enable If DNRIEn=0, the USB data not ready interrupt is disabled. If DNRIEn=1, the USB data not ready interrupt is enabled. USB nodata interrupt enable If NODIEn=0, the USB no data interrupt is disabled. If NODIEn=1, the USB no data interrupt is enabled. USB end of data interrupt enable If EODIEn=0, the USB end of data interrupt is disabled. If EODIEn=1, the USB end of data interrupt is enabled. USB start of data interrupt enable If SODIEn=0, the USB start of data interrupt is disabled. If SODIEn=1, the USB start of data interrupt is enabled.
NAIEn
RLEIEn
- DNRIEn
NODIEn
EODIEn
SODIEn
Semiconductor Group
7-7
1997-10-01
Interrupt System C540U / C541U
Endpoint n Buffer Control RegisterEPBCn, n=0-4 (Address C1H) Bit No. C1H MSB 7 STALLn rw 6 0 r 5 0 r 4 3 2 1 0 r
Reset Value : 00H LSB 0 DBMn rw EPBCn
GEPIEn SOFDEn INCEn rw rw rw
The shaded bits are not used for interrupt control.
Bit GEPIEn
Function Global endpoint interrupt enable Bit GEPIEn enables or disables the generation of the global endpoint interrupt forr endpoint n based on the endpoint specific interrupt request bits in register EPIRn. If GEPIEn=0, the USB endpoint n interrupt is disabled. If GEPIEn=1, the USB endpoint n interrupt is enabled.
Note: For accessing the EPBCn registers SFR EPSEL(D2H) must be set with the appropriate value.
Semiconductor Group
7-8
1997-10-01
Interrupt System C540U / C541U
7.1.2 Interrupt Request / Control Flags The external interrupts 0 and 1 (INT0 and INT1) can each be either level-activated or negative transition-activated, depending on bits IT0 and IT1 in register TCON. The flags that actually generate these interrupts are bits IE0 and lE1 in TCON. When an external interrupt is generated, the flag that generated this interrupt is cleared by the hardware when the service routine is vectored too, but only if the interrupt was transition-activated. lf the interrupt was level-activated, then the requesting external source directly controls the request flag, rather than the on-chip hardware. The timer 0 and timer 1 interrupts are generated by TF0 and TF1 in register TCON, which are set by a rollover in their respective timer/counter registers. When a timer interrupt is generated, the flag that generated it is cleared by the on-chip hardware when the service routine is vectored too. Special Function Register TCON (Address 88H) Bit No. 88H MSB 8FH TF1 8EH TR1 8DH TF0 8CH TR0 8BH IE1 8AH IT1 89H IE0 Reset Value : 00H LSB 88H IT0 TCON
The shaded bits are not used for interrupt control.
Bit TF1
Function Timer 1 overflow flag Set by hardware on timer/counter 1 overflow. Cleared by hardware when processor vectors to interrupt routine. Timer 0 overflow flag Set by hardware on timer/counter 0 overflow. Cleared by hardware when processor vectors to interrupt routine. External interrupt 1 request flag Set by hardware when external interrupt 1 edge is detected. Cleared by hardware when processor vectors to interrupt routine. External interrupt 1 level/edge trigger control flag If IT1 = 0, low level triggered external interrupt 1 is selected. If IT1 = 1, edge triggered mode for external interrupt 1 is selected. The bits IE1TR and IE1TF in SFR ITCON (see section 7.4) further define which signal transition at pin INT1 (rising and/or falling edge) generates an interrupt. External interrupt 0 request flag Set by hardware when external interrupt 0 edge is detected. Cleared by hardware when processor vectors to interrupt routine. External interrupt 0 level/edge trigger control flag If IT0 = 0, low level triggered external interrupt 0 is selected. If IT0 = 1, edge triggered mode for external interrupt 0 is selected. The bits IE0TR and IE0TF in SFR ITCON (see section 7.4) further define which signal transition at pin INT0 (rising and/or falling edge) generates an interrupt.
TF0
IE1
IT1
IE0
IT0
Semiconductor Group
7-9
1997-10-01
Interrupt System C540U / C541U
Special Function Register SCF (C541U only, Address ABH) MSB 7 -
Reset Value : XXXXXX00B LSB 0 TC SCF
Bit No. ABH
6 -
5 -
4 -
3 -
2 -
1 WCOL
Bit - WCOL
Function Reserved bits for future use. SSC write collision interrupt flag WCOL set indicates that an attempt was made to write to the shift register STB while a data transfer was in progress and not fully completed. Bit WCEN in the SCIEN register must be set, if an interrupt request will be generated when WCOL is set. SSC transfer complete interrupt flag If TC is set it indicates that the last transfer has been completed. Bit TCEN in the SCIEN register must be set, if an interrupt request will be generated when TC is set.
TC
The SSC interrupt is generated by a logical OR of flag WCOL and TC in SFR SCF. Both bits can be cleared by software when a "0" is written to the bit location. WCOL is reset by hardware when after a preceeding read operation of the SCF register the SSC transmit data register STB is written with data. TC is reset by hardware when after a preceeding read operation of the SCF register the receive data register SRB is read the next time. The interrupt service routine will normally have to determine whether it was the WCOL or the TC flag that generated the interrupt, and the bit will have to be cleared by software.
Semiconductor Group
7-10
1997-10-01
Interrupt System C540U / C541U
The USB device interrupt request register contains the device specific interrupt flags of the USB module. These flags describe special events of the USB module. If a request flag is set, it is automatically cleared after a read operation of the DIRR register. Special Function Registers DIRR (Address C4H) Bit No. C4H MSB 7 SE0I Reset Value : 00H LSB 6 DAI 5 DDI 4 SBI 3 SEI 2 STI 1 SUI 0 SOFI DIRR
For accessing DIRR, SFR EPSEL must be 80H. Bit SE0I Function Single ended zero interrupt Bit SE0I is set each time a single ended zero is detected for equal or greater than 2.5s. EOP (2 bit times) is not detected. Device attached interrupt Bit DAI is automatically set after detection of the USB device being attached to the USB bus. Device detached interrupt Bit DDI is automatically set after detection of the device being detached from the USB bus. Suspend begin interrupt Bit SBI is automatically set when the suspend mode is entered. Suspend end interrupt Bit SBI is automatically set when the suspend mode is left. Status interrupt Bit STI is set if the host requests a status transfer and the device answers with NACK. Setup interrupt Bit SUI is automatically set after a successful reception of a setup packet. Start of frame Bit SOF is automatically set after detection of a start of frame packet on the USB.
DAI
DDI
SBI SEI STI
SUI SOFI
Semiconductor Group
7-11
1997-10-01
Interrupt System C540U / C541U
The register EPIRn (n=0-4) contains USB endpoint specific interrupt request flags. This SFR is availble for each endpoint. If a request flag in EPIRn is set, it is automatically cleared after a read operation of the EPIRn register. Endpoint Interrupt Request Register EPIRn, n=0-4 (Address C4H) Reset Value EPIR0 : 11H Reset Value EPIR1 to EPIR4 : 10H Bit No. C4H MSB 7 ACKn r LSB 0 SODn r EPIRn
6 NACKn r
5 RLEn r
4 - r
3 DNRn r
2 NODn r
1 EODn r
For accessing EPIRn, SFR EPSEL must be 0nH. Bit ACKn NACKn RLEn Function USB acknowledge Bit ACKn=1 indicates a succesful action on the USB. USB not acknowledge Bit NACK is set for all unsuccessful actions on the USB. Read length error Bit RLEn is automatically set if the number of bytes read by the USB does not correspond to the packet length programmed by the CPU. Reserved bit for future use; Data not ready This bit is set by hardware if the USB module requires an access to USB memory, but no buffer is available. No data This bit indicates an incorrect CPU read or write access to USB memory. End of data During an USB read access EOD is set if the CPU has written a programmable number of bytes in the transmit buffer. During an USB write access EOD is set if the CPU has read a programmable number of bytes out of the receive buffer. Start of data During an USB read access SOD is set if the USB has read a fixed number of bytes from the transmit buffer. During an USB write access SOD is set if the USB has written a fixed number of bytes to the receive buffer.
- DNRn
NODn EODn
SODn
Semiconductor Group
7-12
1997-10-01
Interrupt System C540U / C541U
The global endpoint interrupt request register GEPIRn (n=0-4) contains one flag for each endpoint which indicates whether one or more of the seven endpoint specific interrupt requests has become active. If a request flag in GEPIR is set, it is automatically cleared after a read operation of the GEPIR register. USB Global Endpoint Interrupt Request Register GEPIR (Address D6H) Bit No. D6H MSB 7 0 r Bit EPI4 EPI3 EPI2 EPI1 EPI0 6 0 r Function Endpoint 4 interrupt request flag If EPI4 is set, an endpoint 4 interrupt request is pending. Endpoint 3 interrupt request flag If EPI3 is set, an endpoint 3 interrupt request is pending. Endpoint 2 interrupt request flag If EPI2 is set, an endpoint 2 interrupt request is pending. Endpoint 1 interrupt request flag If EPI1 is set, an endpoint 1 interrupt request is pending. Endpoint 0 interrupt request flag If EPI0 is set, an endpoint 0 interrupt request is pending. 5 0 r 4 EPI4 r 3 EPI3 r 2 EPI2 r 1 EPI1 r Reset Value : 00H LSB 0 EPI0 r GEPIR
Semiconductor Group
7-13
1997-10-01
Interrupt System C540U / C541U
7.1.3 Interrupt Prioritiy Registers Each interrupt source can also be individually programmed to one of two priority levels by setting or clearing a bit in the SFRs IP0 or IP1 (interrupt priority: 0 = low priority, 1 = high priority).
Special Function Registers IP0 (Address B8H) Special Function Registers IP1 (Address B9H) Bit No. B8H MSB 7 -
Reset Value : XXXX0000B Reset Value : XXXXX000B LSB 0 PX0 IP0
6 -
5 -
4 -
3 PT1
2 PX1
1 PT0
B9H
-
-
-
-
-
PUDI
PUEI
PSSC
IP1
Bit - PT1
Function Reserved for future use. Timer 1 overflow interrupt priority level If PT1 = 0, the timer 1 interrupt has a low priority. If PT1 = 1, the timer 1 interrupt has a high priority External interrupt 1 priority level If PX1 = 0, the external interrupt 1 has a low priority. If PX1 = 1, the external interrupt 1 has a high priority. Timer 0 overflow interrupt priority level If PT0 = 0, the timer 0 interrupt has a low priority. If PT0 = 1, the timer 0 interrupt has a high priority. External interrupt 0 priority level If PX0 = 0, the external interrupt 0 has a low priority. If PX0 = 1, the external interrupt 0 has a high priority. USB device interrupt priority level If PUDI = 0, the USB device interrupt has a low priority. If PUDI = 1, the USB device interrupt has a high priority. USB endpoint interrupt priority level If PUEI = 0, the USB endpoint interrupt has a low priority. If PUEI = 1, the USB endpoint interrupt has a high priority. SSC interrupt priority level (C541U only) If PSSC = 0, the SSC interrupt has a low priority. If PSSC = 1, the SSC interrupt has a high priority.
PX1
PT0
PX0
PUDI
PUEI
PSSC
Semiconductor Group
7-14
1997-10-01
Interrupt System C540U / C541U
7.2
Interrupt Priority Level Structure
A low-priority interrupt can itself be interrupted by a high-priority interrupt, but not by another lowpriority interrupt. A high-priority interrupt cannot be interrupted by any other interrupt source. If two requests of different priority level are received simultaneously, the request of higher priority is serviced. If requests of the same priority are received simultaneously, an internal polling sequence determines which request is serviced. Thus, within each priority level there is a second priority structure determined by the polling sequence (vertical and horizontal) as shown in table 7-12 below. If e.g. the external interrupt 0 and the SSC interrupt have the same priority and if they are active simultaneously, the external interrupt 0 will be serviced first. Table 7-12 Interrupt Source Structure Interrupt Source High Priority External Interrupt 0 Timer 0 Interrupt External Interrupt 1 Timer 1 Interrupt Priority Low Priority SSC Interrupt (C541U only) USB Endpoint Interrupt USB Device Interrupt - High
Low
Semiconductor Group
7-15
1997-10-01
Interrupt System C540U / C541U
7.3
How Interrupts are Handled
The interrupt flags are sampled at S5P2 in each machine cycle. The sampled flags are polled during the following machine cycle. If one of the flags was in a set condition at S5P2 of the preceeding cycle, the polling cycle will find it and the interrupt system will generate a LCALL to the appropriate service routine, provided this hardware-generated LCALL is not blocked by any of the following conditions: 1) An interrupt of equal or higher priority is already in progress. 2) The current (polling) cycle is not in the final cycle of the instruction in progress. 3) The instruction in progress is RETI or any write access to registers IE0/IE1 or IP0/IP1. Any of these three conditions will block the generation of the LCALL to the interrupt service routine. Condition 2 ensures that the instruction in progress is completed before vectoring to any service routine. Condition 3 ensures that if the instruction in progress is RETI or any write access to registers IEN0/IEN1 or IP0/IP1, then at least one more instruction will be executed before any interrupt is vectored too; this delay guarantees that changes of the interrupt status can be observed by the CPU. The polling cycle is repeated with each machine cycle, and the values polled are the values that were present at S5P2 of the previous machine cycle. Note that if any interrupt flag is active but not being responded to for one of the conditions already mentioned, or if the flag is no longer active when the blocking condition is removed, the denied interrupt will not be serviced. In other words, the fact that the interrupt flag was once active but not serviced is not remembered. Every polling cycle interrogates only the pending interrupt requests. The polling cycle/LCALL sequence is illustrated in figure 7-50.
C1 S5P2
C2
C3
C4
C5
Interrupt is latched
Interrupts are polled
Long Call to Interrupt Vector Address
Interrupt Routine
MCT01859
Figure 7-50 Interrupt Response Timing Diagram
Semiconductor Group
7-16
1997-10-01
Interrupt System C540U / C541U
Note that if an interrupt of a higher priority level goes active prior to S5P2 in the machine cycle labeled C3 in figure 7-50 then, in accordance with the above rules, it will be vectored to during C5 and C6 without any instruction for the lower priority routine to be executed. Thus, the processor acknowledges an interrupt request by executing a hardware-generated LCALL to the appropriate servicing routine. In some cases it also clears the flag that generated the interrupt, while in other cases it does not; then this has to be done by the user's software. The hardware clears the external interrupt flags IE0 and IE1 only if they were transition-activated. The hardware-generated LCALL pushes the contents of the program counter onto the stack (but it does not save the PSW) and reloads the program counter with an address that depends on the source of the interrupt being vectored too, as shown in the following table 7-13. Table 7-13 Interrupt Source and Vectors Interrupt Source External Interrupt 0 Timer 0 Overflow External Interrupt 1 Timer 1 Overflow SSC Interrupt (C541U only) USB Endpoint Interrupt USB Device Interrupt Wake-up from power down Interrupt Vector Address 0003H 000BH 0013H 001BH 0043H 004BH 0053H 007BH - Interrupt Request Flags IE0 TF0 IE1 TF1
Execution proceeds from that location until the RETI instruction is encountered. The RETI instruction informs the processor that the interrupt routine is no longer in progress, then pops the two top bytes from the stack and reloads the program counter. Execution of the interrupted program continues from the point where it was stopped. Note that the RETI instruction is very important because it informs the processor that the program left the current interrupt priority level. A simple RET instruction would also have returned execution to the interrupted program, but it would have left the interrupt control system thinking an interrupt was still in progress. In this case no interrupt of the same or lower priority level would be acknowledged. A special interrupt source is the power-down mode interrupt. This interrupt is automatically enabled when the C540U/C541U is in power-down mode and bit EWPD (enable wake-up from power-down mode) in SFR PCON1 is set. If these two conditions are met and when the oscillator watchdog unit start-up phase after a wake-up condition (INT0=0) is finished, the C540U/C541U starts with an interrupt at address 007BH. All other interrupts are now disabled until the RETI instruction of the power-down interrupt routine has been executed.
Semiconductor Group
7-17
1997-10-01
Interrupt System C540U / C541U
7.4
External Interrupts
The external interrupts 0 and 1 can be programmed to be level-activated or transition activated by setting or clearing bit IT0 or IT1 in register TCON. If ITx = 0 (x = 0 or 1), external interrupt x is triggered by a detected low level at the INTx pin. In edge-triggered mode (ITx = ) two bits of the ITCON register define the type of signal transition for which the external interrupt inputs are sensitive. Edge-triggered interrupt can be activated for an interrupt input signal at the rising edge, at the falling edge or at both signal transitions. In edge-triggered mode, if successive samples of the INTx pin show a different logic level in two consequent machine cycles, the corresponding interrupt request flag IEx in TCON is set. Flag bit IEx=1 then requests the interrupt. If the external interrupt 0 or 1 is level-activated, the external source has to hold the request active until the requested interrupt is actually generated. Then it has to deactivate the request before the interrupt service routine is completed, or else another interrupt will be generated. Since the external interrupt pins are sampled once in each machine cycle, an input high or low should be held for at least 6 oscillator periods to ensure sampling. lf the external interrupt is transition-activated, the external source has to hold the request pin high for at least one cycle, and then hold it low for at least one cycle to ensure that the transition is recognized so that the corresponding interrupt request flag will be set (see figure 7-51). The external interrupt request flags will automatically be cleared by the CPU when the service routine is called.
a) Level-Activated Interrupt
INTx > 1 Machine Cycle
Low-Level Threshold
b) Transition-Activated Interrupt High-Level Threshold INTx IxETF = 1 > 1 Machine Cycle Transition to be detected INTx IxETR = 1 Low-Level Threshold
MCT02577
> 1 Machine Cycle
Low-Level Threshold
High-Level Threshold
Figure 7-51 External Interrupt Detection Semiconductor Group 7-18 1997-10-01
Interrupt System C540U / C541U
The edge-triggered interrupt mode selection for the external interrupts is selected by bits in SFR ITCON (External Interrupt Trigger Condition Register). The edge-trigger mode selection is defined in a way (default value of ITCON after reset), that their function is upward compatible to the basic external interrupt functionality of the C501. Special Function Registers ITCON (Address 9AH) Bit No. MSB 7 9AH - 6 - 5 - 4 - 3 2 1 Reset Value : XXXX1010B LSB 0 ITCON I1ETF I1ETR I0ETF I0ETR INT1 Bit - IxETF IxETR Function Reserved bit for future use. External Interrupt Edge Trigger Mode Selection (x=0,1 refers to INT0, INT1) IxETF 0 0 1 1 IxETR Function 0 1 0 1 INTx inputs are not sensitive for either rising or falling edge INTx operates in rising edge-triggered mode INTx operates in falling edge-triggered mode (default after reset) INTx operates in falling and rising edge-triggered mode INT0
Semiconductor Group
7-19
1997-10-01
Interrupt System C540U / C541U
7.5
Interrupt Response Time
If an external interrupt is recognized, its corresponding request flag is set at S5P2 in every machine cycle. The value is not polled by the circuitry until the next machine cycle. If the request is active and conditions are right for it to be acknowledged, a hardware subroutine call to the requested service routine will be next instruction to be executed. The call itself takes two cycles. Thus a minimum of three complete machine cycles will elapse between activation and external interrupt request and the beginning of execution of the first instruction of the service routine. A longer response time would be obtained if the request was blocked by one of the three previously listed conditions. If an interrupt of equal or higer priority is already in progress, the additional wait time obviously depends on the nature of the other interrupt's service routine. If the instruction in progress is not in its final cycle, the additional wait time cannot be more than 3 cycles since the longest instructions (MUL and DIV) are only 4 cycles long; and, if the instruction in progress is RETI or a write access to registers IE or IP the additional wait time cannot be more than 5 cycles (a maximum of one more cycle to complete the instruction in progress, plus 4 cycles to complete the next instruction, if the instruction is MUL or DIV). Thus a single interrupt system, the response time is always more than 3 cycles and less than 9 cycles.
Semiconductor Group
7-20
1997-10-01
Fail Safe Mechanisms C540U / C541U
8
Fail Safe Mechanisms
The C540U/C541U offers enhanced fail safe mechanisms, which allow an automatic recovery from software upset or hardware failure : - a programmable watchdog timer (WDT), with variable time-out period from 256 s up to approx. 0.55 s at 12 MHz. The WDT is not available in the C540U. - an oscillator watchdog (OWD) which monitors the on-chip oscillator and forces the microcontroller into reset state in case the on-chip oscillator fails; it also provides the clock for a fast internal reset after power-on. 8.1 Programmable Watchdog Timer (C541U only)
To protect the system against software upset, the user's program has to clear this watchdog within a previously programmed time period. lf the software fails to do this periodical refresh of the watchdog timer, an internal hardware reset will be initiated. The software can be designed so that the watchdog times out if the program does not work properly. lt also times out if a software error is based on hardware-related problems. The watchdog timer in the C541U is a 15-bit timer, which is incremented by a count rate of fOSC/12 or fOSC/192. The system clock of the C541U is divided by two prescalers, a divide-by-two and a divide-by-16 prescaler which are selected by bit WDTPSEL (WDTREL.7). For programming of the watchdog timer overflow rate, the upper 7 bit of the watchdog timer can be written. Figure 8-1 shows the block diagram of the watchdog timer unit.
0
7 WDTL 14 8 WDTH
f OSC / 6
2
16
WDT Reset-Request WDCON (CO H ) -
-
-
OWDS WDTS
WDT
SWDT
WDTPSEL
Control Logic 76 External HW Reset WDTREL
MCB03384
0
Figure 8-1 Block Diagram of the Programmable Watchdog Timer Note : WDTH and WDTL cannot be accessed by software.
Semiconductor Group
8-1
1997-10-01
Fail Safe Mechanisms C540U / C541U
8.1.1 Input Clock Selection The input clock rate of the watchdog timer is derived from the system clock of the C541U. There is a prescaler available, which is software selectable and defines the input clock rate. This prescaler is controlled by bit WDTPSEL in the SFR WDTREL. Tabel 8-1 shows resulting timeout periods at fOSC = 12 MHz. Special Function Register WDTREL (Address 86H) MSB Bit No. 7 86H WDT PSEL Reset Value : 00H LSB 0 WDTREL
6
5
4
3 Reload Value
2
1
Bit WDTPSEL
Function Watchdog timer prescaler select bit. If WDTPSEL=0, the watchdog timer is clocked by fOSC/12 (default after reset). If WDTPSEL=1, the watchdog timer is clocked by fOSC/192 Seven bit reload value for the high-byte of the watchdog timer. This value is loaded to WDTH when a refresh is triggered by a consecutive setting of bits WDT and SWDT.
WDTREL.6 - 0
Immediately after start, the watchdog timer is initialized to the reload value programmed to WDTREL.0-WDTREL.6. After an external hardware reset, an oscillator watchdog power on reset, or a watchdog timer reset, register WDTREL is cleared to 00H. The lower seven bits of WDTREL can be loaded by software at any time.
Table 8-1 Watchdog Timer Time-Out Periods (WDTPSEL = 0) WDTREL 00H 80H 7FH Time-Out Period fOSC = 12 MHz 32.768 ms 0.55 s 256 s Comments This is the default value Maximum time period Minimum time period
Semiconductor Group
8-2
1997-10-01
Fail Safe Mechanisms C540U / C541U
8.1.2 Watchdog Timer Control / Status Flags The watchdog timer is controlled by control and status flags which are located in SFR WDCON. Special Function Register WDCON (Address C0H) Bit No. MSB 7 C0H - Reset Value : XXXX 0000B LSB 0 SWDT WDCON
6 -
5 -
4 -
3 OWDS
2 WDTS
1 WDT
Bit - OWDS
Function Reserved bits for future use. Oscillator watchdog timer status flag. Set by hardware when an oscillator watchdog reset occured. Can be set and cleared by software. Watchdog timer status flag. Set by hardware when a watchdog timer reset occured. Can be cleared and set by software. Watchdog timer refresh flag. Set to initiate a refresh of the watchdog timer. Must be set directly before SWDT is set to prevent an unintentional refresh of the watchdog timer. Watchdog timer start flag. Set to activate the watchdog timer. When directly set after setting WDT, a watchdog timer refresh is performed.
WDTS
WDT
SWDT
Semiconductor Group
8-3
1997-10-01
Fail Safe Mechanisms C540U / C541U
8.1.3 Starting the Watchdog Timer The watchdog timer can be started by software (bit SWDT in SFR WDCON), but it cannot be stopped during active mode of the device. If the software fails to clear the watchdog timer an internal reset will be initiated. The reset cause (external reset or reset caused by the watchdog) can be examined by software (status flag WDTS in WDCON is set). A refresh of the watchdog timer is done by setting bits WDT (SFR WDCON) and SWDT consecutively. This double instruction sequence has been implemented to increase system security. It must be noted, however, that the watchdog timer is halted during the idle mode and power-down mode of the processor (see section "Power Saving Modes"). Therefore, it is possible to use the idle mode in combination with the watchdog timer function. But even the watchdog timer cannot reset the device when one of the power saving modes has been entered accidentally. 8.1.4 Refreshing the Watchdog Timer At the same time the watchdog timer is started, the 7-bit register WDTH is preset by the contents of WDTREL.0 to WDTREL.6. Once started the watchdog timer cannot be stopped by software but can be refreshed to the reload value only by first setting bit WDT (WDCON) and by the next instruction setting SWDT (WDCON). Bit WDT will automatically be cleared during the third machine cycle after having been set. This double-instruction refresh of the watchdog timer is implemented to minimize the chance of an unintentional reset of the watchdog unit. The reload register WDTREL can be written at any time, as already mentioned. Therefore, a periodical refresh of WDTREL can be added to the above mentioned starting procedure of the watchdog timer. Thus a wrong reload value caused by a possible distortion during the write operation to WDTREL can be corrected by software. Note : the watchdog timer registers WDTH and WDTL cannot be accessed by software. 8.1.5 Watchdog Reset and Watchdog Status Flag If the software fails to clear the watchdog in time, an internally generated watchdog reset is entered at the counter state 7FFCH. The duration of the reset signal then depends on the prescaler selection (either 8 or 128 machine cycles). This internal reset differs from an external one in so far as the watchdog timer is not disabled and bit WDTS is set. The WDTS is a flip-flop, which is set by a watchdog timer reset and can be cleared by an external hardware reset. Bit WDTS allows the software to examine from which source the reset was activated. The bit WDTS can also be cleared by software.
Semiconductor Group
8-4
1997-10-01
Fail Safe Mechanisms C540U / C541U
8.2
Oscillator Watchdog Unit
The oscillator watchdog unit serves for three functions: - Monitoring of the on-chip oscillator's function The watchdog supervises the on-chip oscillator's frequency; if it is lower than the frequency of the auxiliary RC oscillator in the watchdog unit, the internal clock is supplied by the RC oscillator and the device is brought into reset; if the failure condition disappears (i.e. the onchip oscillator has a higher frequency than the RC oscillator), the part executes a final reset phase of typ. 1 ms in order to allow the oscillator to stabilize; then the oscillator watchdog reset is released and the part starts program execution again. - Fast internal reset after power-on The oscillator watchdog unit provides a clock supply for the reset before the on-chip oscillator has started. The oscillator watchdog unit also works identically to the monitoring function. - Control of external wake-up from software power-down mode (description see chapter 9) When the power-down mode is left by a low level at the INT0 pin or by the USB, the oscillator watchdog unit assures that the microcontroller resumes operation (execution of the powerdown wake-up interrupt) with the nominal clock rate. In the power-down mode the RC oscillator and the on-chip oscillator are stopped. Both oscillators are started again when power-down mode is released. When the on-chip oscillator has a higher frequency than the RC oscillator, the microcontroller starts operation after a final delay of typ. 1 ms in order to allow the on-chip oscillator to stabilize. Note: The oscillator watchdog unit is always enabled.
Semiconductor Group
8-5
1997-10-01
Fail Safe Mechanisms C540U / C541U
8.2.1 Functionality of the Oscillator Watchdog Unit Figure 8-2 shows the block diagram of the oscillator watchdog unit. It consists of an internal RC oscillator which provides the reference frequency for the comparison with the frequency of the onchip oscillator.
EWPD (PCON1.7) Activity on USB Bus P3.2 / INT0 Control Logic
WS (PCON1.4)
Power - Down Mode Activated Power-Down Mode Wake - Up Interrupt Control Logic Internal Reset
Start / Stop RC Oscillator
f RC
3 MHz Start / Stop
10
f1
Frequency Comparator
f 2 Delay
>1
XTAL1 XTAL2 On-Chip Oscillator
f2
WDCON (C0 H )
OWDS
Int. Clock
MCD03385
Figure 8-2 Functional Block Diagram of the Oscillator Watchdog The frequency coming from the RC oscillator is divided by 10 and compared to the on-chip oscillator's frequency. If the frequency coming from the on-chip oscillator is found lower than the frequency derived from the RC oscillator the watchdog detects a failure condition (the oscillation at the on-chip oscillator could stop because of crystal damage etc.). In this case it switches the input of the internal clock system to the output of the RC oscillator. This means that the part is being clocked even if the on-chip oscillator has stopped or has not yet started. At the same time the watchdog activates the internal reset in order to bring the C540U/C541U in its defined reset state. The reset is performed because a clock is available from the RC oscillator. This internal watchdog reset has the same effects as an externally applied reset signal with the following exceptions: The watchdog timer status flag WDTS is not reset (the watchdog timer however is stopped) and bit OWDS is set. This allows the software to examine error conditions detected by the watchdog timer even if meanwhile an oscillator failure occured.
Semiconductor Group
8-6
1997-10-01
Fail Safe Mechanisms C540U / C541U
The oscillator watchdog is able to detect a recovery of the on-chip oscillator after a failure. If the frequency derived from the on-chip oscillator is again higher than the reference the watchdog starts a final reset sequence which takes typ. 1 ms. Within that time the clock is still supplied by the RC oscillator and the part is held in reset. This allows a reliable stabilization of the on-chip oscillator. After that, the watchdog toggles the clock supply back to the on-chip oscillator and releases the reset request. If no reset is applied in this moment the part will start program execution. If an external reset is active, however, the device will keep the reset state until also the external reset request disappears. Furthermore, the status flag OWDS is set if the oscillator watchdog was active. The status flag can be evaluated by software to detect that a reset was caused by the oscillator watchdog. The flag OWDS can be set or cleared by software. An external reset request, however, also resets OWDS (and WDTS). 8.2.2 Fast Internal Reset after Power-On The C540U/C541U can use the oscillator watchdog unit for a fast internal reset procedure after power-on. Normally the members of the 8051 family (e. g. SAB 80C52) enter their default reset state not before the on-chip oscillator starts. The reason is that the external reset signal must be internally synchronized and processed in order to bring the device into the correct reset state. Especially if a crystal is used the start up time of the oscillator is relatively long (typ. 1 ms). During this time period the pins have an undefined state which could have severe effects e.g. to actuators connected to port pins. In the C540U/C541U the oscillator watchdog unit avoids this situation. After power-on the oscillator watchdog's RC oscillator starts working within a very short start-up time (typ. less than 2 microseconds). In the following the watchdog circuitry detects a failure condition for the on-chip oscillator because this has not yet started (a failure is always recognized if the watchdog's RC oscillator runs faster than the on-chip oscillator). As long as this condition is valid the watchdog uses the RC oscillator output as clock source for the chip. This allows correct resetting of the part and brings all ports to the defined state. The delay time between power-on and correct reset state is max 34 s. More details about the fast internal reset procedure after power-on are described in chapter 5 of this manual.
Semiconductor Group
8-7
1997-10-01
Fail Safe Mechanisms C540U / C541U
Semiconductor Group
8-8
1997-10-01
Power Saving Modes C540U / C541U
9
Power Saving Modes
The C540U/C541U provides two power saving modes : - Idle mode - Power down mode. The functions of the power saving modes are controlled by bits which are located in the special function registers PCON und PCON1. PCON is located at address 87H. PCON1 is located in the mapped SFR area and is accessed with RMAP=1. Bit RMAP is located in SFR SYSCON (B1H) bit 4. The bits PDE, PDS and IDLE, IDLS located in SFR PCON select the power down mode or the idle mode, respectively. If the power down mode and the idle mode are set at the same time, powerdown takes precedence. Furthermore, register PCON contains two general purpose flags. For example, the flag bits GF0 and GF1 can be used to give an indication if an interrupt occurred during normal operation or during an idle. Then an instruction that activates idle can also set one or both flag bits. When idle is terminated by an interrupt, the interrupt service routine can examine the flag bits.
Semiconductor Group
9-1
1997-10-01
Power Saving Modes C540U / C541U
Special Function Register PCON (Address 87H) Special Function Register PCON1 (Mapped Address 88H) Bit No. MSB 7 87H -
Reset Value : X00X0000B Reset Value : 0XX0XXXXB LSB 0 IDLE PCON
6 PDS
5 IDLS
4 -
3 GF1
2 GF0
1 PDE
88H
EWPD
-
-
WS
-
-
-
-
PCON1
The function of the shaded bit is not described in this section.
Symbol PDS
Function Power down start bit The instruction that sets the PDS flag bit is the last instruction before entering the power down mode Idle start bit The instruction that sets the IDLS flag bit is the last instruction before entering the idle mode. General purpose flag General purpose flag Power down enable bit When set, starting of the power down is enabled Idle mode enable bit When set, starting of the idle mode is enabled External wake-up from powe down enable bit Setting EWPD before entering power down mode, enables the external wakeup from power down mode capability via the pin P3.2/INT0 or by the USB module. Wake-up from software power down mode source select WS = 0 : wake-up via pin P3.2/INT0 selected (default after reset) WS = 1 : wake-up via USB bus selected Reserved bits for future use.
IDLS
GF1 GF0 PDE IDLE EWPD
WS
-
Semiconductor Group
9-2
1997-10-01
Power Saving Modes C540U / C541U
9.1
Idle Mode
In the idle mode the main oscillator of the C540U/C541U continues to run, but the CPU is gated off from the clock signal. However, the interrupt system, the SSC (C541U only), the USB module, and the timers with the exception of the watchdog timer (C541U only) are further provided with the clock. The CPU status is preserved in its entirety : the stack pointer, program counter, program status word, accumulator, and all other registers maintain their data during idle mode. The reduction of power consumption, which can be achieved by this feature depends on the number of peripherals running. If all peripherals are disabled or stopped, the maximum power reduction can be achieved. This state is also the test condition for the idle mode ICC. So the user has to take care which peripheral should continue to run and which has to be stopped during idle mode. Also the state of all port pins - either the pins controlled by their latches or controlled by their secondary functions - depends on the status of the controller when entering idle mode. Normally the port pins hold the logical state they had at the time idle mode was activated. If some pins are programmed to serve their alternate functions they still continue to output during idle mode if the assigned function is on. This applies to the serial interface in case it cannot finish reception or transmission during normal operation. The control signals ALE and PSEN hold at logic high levels. Table 9-1 Status of External Pins During Idle and Power-Down Mode Outputs Last Instruction Executed from Internal Code Memory Idle ALE PSEN Port 0 Port 2 Port 3 High High Data Data Data/alternate outputs Power-Down Low Low Data Data Data/last output Last Instruction Executed from External Code Memory Idle High High Float Address Data/alternate outputs Power-Down Low Low Float Data Data/last output
As in normal operation mode, the ports can be used as inputs during idle mode. Therefore, the timers can be used to count external events, and external interrupts will be detected. The idle mode is a useful feature which makes it possible to "freeze" the processor's status - either for a predefined time, or until an external event reverts the controller to normal operation, as discussed below. The watchdog timer is the only peripheral which is automatically stopped during idle mode.
Semiconductor Group
9-3
1997-10-01
Power Saving Modes C540U / C541U
9.1.1 Entering Idle Mode The idle mode is entered by two consecutive instructions. The first instruction sets the flag bit IDLE (PCON.0) and must not set bit IDLS (PCON.5), the following instruction sets the start bit IDLS (PCON.5) and must not set bit IDLE (PCON.0). The hardware ensures that a concurrent setting of both bits, IDLE and IDLS, does not initiate the idle mode. Bits IDLE and IDLS will automatically be cleared after being set. If one of these register bits is read the value that appears is 0. This double instruction is implemented to minimize the chance of an unintentional entering of the idle mode which would leave the watchdog timer's task of system protection without effect. PCON is not a bit-addressable register, so the above mentioned sequence for entering the idle mode is obtained by byte-handling instructions, as shown in the following example: ORL ORL PCON,#00000001B PCON,#00100000B ;Set bit IDLE, bit IDLS must not be set ;Set bit IDLS, bit IDLE must not be set
The instruction that sets bit IDLS is the last instruction executed before going into idle mode. In idle mode, the USB module can be fully functional or can be switched off. If it is switched off in idle mode the following steps must be processed before entering the idle mode : - USB module clock is switched off by software (resetting bit UCLK in SFR DCR) - additionally in full speed mode : USB PLL is switched off (resetting bit PCLK in SFR DCR)
9.1.2 Exit from Idle Mode There are two ways to terminate the idle mode: - The idle mode can be terminated by activating any enabled interrupt. This interrupt will be serviced and normally the instruction to be executed following the RETI instruction will be the one following the instruction that sets the bit IDLS. - The other way to terminate the idle mode, is a hardware reset. Since the oscillator is still running, the hardware reset must be held active only for two machine cycles for a complete reset. After leaving the idle mode through e.g. an interrupt with a switched-off USB module, a well defined procedure must be executed foragain switching on the USB module : - in full speed mode only USB PLL is switched on (setting bit PCLK in SFR DCR) and waiting 3 ms for PLL being locked - USB module clock is switched on (setting bit UCLK in SFR DCR) This switch off/on procedure assures a proper operation of the USB clock system. If the idle mode is terminated by a hardware reset, the USB module has to be reconfigured as defined for the hardware reset case.
Semiconductor Group
9-4
1997-10-01
Power Saving Modes C540U / C541U
9.2
Power Down Mode
In the power down mode, the RC osciillator and the on-chip oscillator which operates with the XTAL pins is stopped. Therefore, all functions of the microcontroller are stopped and only the contents of the on-chip RAM, XRAM and the SFR's are maintained. The port pins, which are controlled by their port latches, output the values that are held by their SFR's. The port pins which serve the alternate output functions show the values they had at the end of the last cycle of the instruction which initiated the power down mode. ALE and PSEN hold at logic low level (see table 9-1). The power down mode can be left either by an active reset signal or by a low signal at the P3.2/INT0 pin or any activity on the USB bus. The USB module enters the suspend state when it detects no activity on the USB bus for more than 6 ms. The suspend state is left when bus activity is detected on the USB bus. Leaving the suspend state can (if selected and enabled) wake-up the power down mode. Using reset to leave power down mode puts the microcontroller with its SFRs into the reset state. Using the INT0 pin or USB bus for power down mode exit maintains the state of the SFRs, which has been frozen when power down mode is entered. In the power down mode of operation, VCC can be reduced to minimize power consumption. It must be ensured, however, that is VCC not reduced before the power down mode is invoked, and that VCC is restored to its normal operating level before the power down mode is terminated.
Semiconductor Group
9-5
1997-10-01
Power Saving Modes C540U / C541U
9.2.1 Entering Power Down Mode The power down mode is entered by two consecutive instructions. The first instruction has to set the flag bit PDE (PCON.1) and must not set bit PDS (PCON.6), the following instruction has to set the start bit PDS (PCON.6) and must not set bit PDE (PCON.1). The hardware ensures that a concurrent setting of both bits, PDE and PDS, does not initiate the power down mode. Bits PDE and PDS will automatically be cleared after having been set and the value shown by reading one of these bits is always 0. This double instruction is implemented to minimize the chance of unintentionally entering the power down mode which could possibly "freeze" the chip's activity in an undesired status. Important : the USB module must be switched off from the system clock prior to enabling the power down mode by software : PCON is not a bit-addressable register, so the above mentioned sequence for entering the powerdown mode is obtained by byte-handling instructions, as shown in the following example: ANL ANL ORL ORL DCR,#11111101B DCR,#11111110B PCON,#00000010B PCON,#01000000B ;clear bit UCLK; USB clock is switched off ;clear bit PCLK, stop PLL (required only in full speed mode) ;set bit PDE, bit PDS must not be set ;set bit PDS, bit PDE must not be set, enter power-down
The instruction that sets bit PDS is the last instruction executed before going into power down mode. When the double instruction sequence shown above is used and when bit EWPD in SFR PCON1 is 0, the power down mode can only be left by a reset operation. If the wake-up from power down capability is required, its function must be enabled prior to executing the double instruction sequence shown above. ORL ORL SYSCON,#00010000B PCON1,#80H ;set RMAP ;enable wake-up from power-down by setting EWPD ;80H = wake-up through pin P3.2/INT0 ;90H = wake-up through USB bus ;reset RMAP (for future SFR accesses)
ANL
SYSCON,#11101111B
Note :Before entering the power down mode, the port latch of SFR P3.2 (P3.2/INT0 pin) should contain a "1" (pin operates as input). Otherwise, the wake-up sequence discussed in the next chapter will be started immediately when power down mode is entered. If the wake-up from software power down mode through USB bus capability is selected, the USB receiver must be enabled in order to detect any activity on the USB bus lines. Therefore, bit RPWD in the USB device power down register DPWDR must be cleared before enering software power down mode. The USB module enters the suspend state when it detects no activity on teh USB bus for more than 6 ms.
Semiconductor Group
9-6
1997-10-01
Power Saving Modes C540U / C541U
9.2.2 Exit from Power Down Mode If the power down mode is exit via a hardware reset, the microcontroller with its SFRs is put into the hardware reset state and the content of RAM and XRAM are not changed. The reset signal that terminates the power down mode also restarts the RC oscillator and the on-chip oscillatror. The reset operation should not be activated before VCC is restored to its normal operating level and must be held active long enough to allow the oscillator to restart and stabilize (similar to power-on reset). The USB clock system must be cotrolled as described for the hardware reset in chapter 5. Figure 9-1 shows the procedure which must is executed when the power down mode is left via the wake-up capability.
Power Down Mode 1) P3.2 / INT0 or Activity Detected on USB Bus
Latch Phase 2)
Watchdog Circuit Oscillator Start-Up Phase 3)
Execution of Interrupt at 007B H 4) 5)
min. 10 s
typ. 5 ms RETI Instruction
Detailed Timing of Beginning of Phase 4 ALE
PSEN
P2
Invalid Address
00H
P0
Invalid Address / Data
7BH 1st Instr. of ISR
MCT03418
Figure 9-1 Wake-up from Power Down Mode Procedure
Semiconductor Group
9-7
1997-10-01
Power Saving Modes C540U / C541U
When the power-down mode wake-up capability has been enabled (bit EWPD in SFR PCON1 set) prior to entering power down mode, the power down mode can be exit either via P3.2/INT0 or an activity on the USB bus. 9.2.2.1 Exit via Pin P3.2/INT0
The following procedure : 1. In power down mode pin INT0 must be held at high level. 2. Power down mode is left when INT0 goes low. With INT0 = low the internal RC oscillator is started. INT0 is then latched by the RC oscillator clock signal. Therefore, INT0 should be held at low level for at least 10 s (latch phase). After this delay INT0 can be set again to high level if required. Thereafter, the oscillator watchdog unit controls the wake-up procedure in its start-up phase. 3. The oscillator watchdog unit starts its operation. When the on-chip oscillator clock is detected for stable nominal frequency, the microcontroller further waits for a delay of typically 5 ms and then starts again with its operation initiating the power down wake-up interrupt. The interrupt address of the first instruction to be executed after wake-up is 007BH. 4. The clock system of the USB module must be setup again by software : USB PLL is switched on by setting bit PCLK in SFR DCR.(only required in full speed mode); Therafter, the PLL must be stabilized by waiting typically 3 ms. Now bit UCLK in SFR DCR can be set. 5. After the RETI instruction of the power down wake-up interrupt routine has been executed, the instruction which follows the initiating power down mode double instruction sequence will be executed. The peripheral units timer 0/1, SSC, and WDT are frozen until end of phase 4. All interrupts of the C541U are disabled from phase 2) until the end of phase 4). Other Interrupts can be first handled after the RETI instruction of the wake-up interrupt routine. Depending on the requirements, point 4 can also be executed in pahse 5) after the execution of the RETI instruction described in point 5 above. 9.2.2.2 Exit via UBS Bus
If the wake-up from software power down mode through USB bus capability has been selected, any activity on the USB bus causes the termination of the suspend state, triggers the watchdog unit and starts the wake-up procedure. After the start trigger by the USB bus activity, the actions 3. to 5. as described above are executed. The wake-up trigger signal from the USB module can only be generated if the USB receiver circuitry was enabled in software power down mode.
Semiconductor Group
9-8
1997-10-01
OTP Memory Operation C540U / C541U
10
OTP Memory Operation
The C541U contains a 8k byte one-time programmable (OTP) program memory (C540U : 4k byte). With the C540U/C541U fast programming cycles are achieved (1 byte in 100 sec). Also several levels of OTP memory protection can be selected. This chapter describes in detail the C540U/C541U programmimg interface. 10.1 Programming Configuration
For programming of the device, the C540U/C541U must be put into the programming mode. This typically is done not in-system but in a special programming hardware. In the programming mode the C540U/C541U operates as a slave device similar as an EPROM standalone memory device and must be controlled with address/data information, control lines, and an external 11.5V programming voltage. In the programming mode port 0 provides the bidirectional data lines and port 2 is used for the multiplexed address inputs. The upper address information at port 2 is latched with the signal PALE. For basic programming mode selection the inputs RESET, PSEN, EA/VPP, ALE, PMSEL1/0, and PSEL are used. Further, the inputs PMSEL1,0 are required to select the access types (e.g. program/verify data, write lock bits, ....) in the programming mode. In programming mode VCC/VSS and a clock signal at the XTAL pins must be applied to the C541U. The 11.5V external programming voltage is input through the EA/VPP pin. Figure 10-2 shows the pins of the C540U/C541U which are required for controlling of the OTP programming mode.
V CC
V SS
A0 - A7 / A8 - A12 PALE PMSEL0 PMSEL1
Port 2
Port 0
D0 - D7
EA / V PP
C540U C541U
PROG PRD RESET
XTAL1 XTAL2
PSEN PSEL
MCS03386
Figure 10-2 C540U/C541U Programming Mode Configuration
Semiconductor Group
10-1
1997-10-01
OTP Memory Operation C540U / C541U
10.2
Pin Configuration
Figure 10-3 shows the detailed P-LCC-44 pin configuration of the C540U/C541U in programming mode. Figure 10-4 shows the detailed P-SDIP-52 pin configuration.
N.C. N.C. N.C. N.C. N.C. N.C. N.C. D0 D1 D2 D3
6 5 4 3 2 1 44 43 42 41 40 N.C. V CC V SS RESET PMSEL0 N.C: PMSEL1 PSEL PRD PALE GND 7 8 9 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 31 30 29 D4 D5 D6 D7 EA / V PP N.C. PROG PSEN A7 A6 A5
C540U C541U Programming Mode
18 19 20 21 22 23 24 25 26 27 28
A0 / A8 A1 / A9 A2 / A10 A3 / A11 A4 / A12 GND GND XTAL2 XTAL1 V SS V CC
MCP03387
Figure 10-3 P-LCC-44 Pin Configuration of the C540U/C541U in Programming Mode (top view)
Semiconductor Group
10-2
1997-10-01
OTP Memory Operation C540U / C541U
N.C. N.C. N.C. N.C. N.C. N.C. N.C. N.C. N.C. V CC V SS RESET PMSEL0 N.C. N.C. PMSEL1 PSEL PRD PALE GND GND GND XTAL2 XTAL1 V SS V CC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
C540U C541U Programming Mode
52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27
N.C. P1.5 / SLS D0 D1 D2 D3 D4 D5 D6 D7 EA / V PP N.C. N.C. PROG PSEN N.C. N.C. A7 A6 A5 A4 / A12 A3 / A11 A2 / A10 A1 / A9 A0 / A8 N.C.
MCP03388
Figure 10-4 P-SDIP-52 Pin Configuration of the C540U/C541U in Programming Mode (top view)
Semiconductor Group
10-3
1997-10-01
OTP Memory Operation C540U / C541U
10.3
Pin Definitions
The following table 10-2 contains the functional description of all C540U/C541U pins which are required for OTP memory programming Table 10-2 Pin Definitions and Functions in Programming Mode Symbol RESET 10 Pin Numbers P-LCC-44 P-SDIP-52 12 I Reset This input must be at static "1" (active) level during the whole programming mode. Programming mode selection pins These pins are used to select the different access modes in programming mode. PMSEL1,0 must satisfy a setup time to the rising edge of PALE. When the logic level of PMSEL1,0 is changed, PALE must be at low level. PMSEL PMSEL Access Mode 1 0 0 0 1 1 PSEL 14 17 I 0 1 0 1 Reserved Read version bytes Program/read lock bits Program/read OTP memory byte I/O*) Function
PMSEL0 PMSEL1
11 13
13 16
I I
Basic programming mode select This input is used for the basic programming mode selection and must be switched according figure 105. Programming mode read strobe This input is used for read access control for OTP memory read, version byte read, and lock bit read operations. Programming mode address latch enable PALE is used to latch the high address lines. The high address lines must satisfy a setup and hold time to/ from the falling edge of PALE. PALE must be at low level whenever the logic level of PMSEL1,0 is changed. XTAL2 Output of the inverting oscillator amplifier.
PRD
15
18
I
PALE
16
19
I
XTAL2
20
23
O
*) I = Input O = Output
Semiconductor Group
10-4
1997-10-01
OTP Memory Operation C540U / C541U
Table 10-2 Pin Definitions and Functions in Programming Mode (cont'd) Symbol XTAL1 A0/A8 A7 21 24 - 31 Pin Numbers P-LCC-44 P-SDIP-52 24 28 - 35 I I XTAL1 Input to the oscillator amplifier. Address lines P2.0-7 are used as multiplexed address input lines A0-A7 and A8-A12. A8-A12 must be latched with PALE. Address A12 is requred only for the C541U. Program store enable This input must be at static "0" level during the whole programming mode. Programming mode write strobe This input is used in programming mode as a write strobe for OTP memory program and lock bit write operations During basic programming mode selection a low level must be applied to PROG. External Access / Programming voltage This pin must be at 11.5 V (VPP) voltage level during programming of an OTP memory byte or lock bit. During an OTP memory read operation this pin must be at high level (VIH). This pin is also used for basic programming mode selection. At basic programming mode selection a low level must be applied to EA/VPP. Data lines 0-7 During programming mode, data bytes are read or written from or to the C540U/C541U via the bidirectional D0-7 lines which are located at port 0. Circuit ground potential must be applied to these pins in programming mode. Power supply terminal must be applied to these pins in programming mode. Not Connected These pins should not be connected in programming mode. Ground pins In programming mode these pins must be connected to VIL level. I/O*) Function
PSEN
32
38
I
PROG
33
39
I
EA/VPP
35
42
I
D0 - 7
43 - 38
50 - 43
I/O
VSS VCC
N.C.
9, 22 8, 23 1, 12,, 34, 44
11, 25 10, 26 1 - 9, 14, 15, 27, 36, 37, 40, 41, 52 20 - 22
- - -
GND
17 - 19
I
*) I = Input O = Output
Semiconductor Group
10-5
1997-10-01
OTP Memory Operation C540U / C541U
10.4
Programming Mode Selection
The selection for the OTP programming mode can be separated into two different parts : - Basic programming mode selection - Access mode selection With the basic programming mode selection the device is put into the mode in which it is possible to access the OTP memory through the programming interface logic. Further, after selection of the basic programming mode, OTP memory accesses are executed by using one of the access modes. These access modes are OTP memory byte program/read, version byte read, and program/read lock byte operations. 10.4.1 Basic Programming Mode Selection The basic programming mode selection scheme is shown in figure 10-5.
V CC
Clock (XTAL1 / XTAL2) RESET PSEN PMSEL1,0 PROG PRD PSEL PALE "0" "0" "1" 0,1 Stable "1" "0"
5V
V PP
EA / V PP During this Period Signals are not actively driven 0V
V IH1
Ready for Access Mode Selection
MCT03389
Figure 10-5 Basic Programming Mode Selection
Semiconductor Group
10-6
1997-10-01
OTP Memory Operation C540U / C541U
The basic programming mode is selected by executing the following steps : - With a stable Vcc a clock signal is applied to the XTAL pins; the RESET pin is set to "1" level and the PSEN pin is set to "0" level. - PROG, PALE, PMSEL1 and EA/VPP are set to "0" level; PRD, PSEL, and PMSEL0 are set to "1" level. - PSEL is set to from "1" to "0" level and thereafter PROG is switched to "1" level. - PMSEL1,0 can now be changed; after EA/VPP has been set to VIH high level or to VPP the OTP memory is ready for access. The pins RESET and PSEN must stay at "1" respectively "0" static signal level during the whole programming mode. With a falling edge of PSEL the logic state of ALE/PROG and VPP(EA) is internally latched. These two signals are now used as programming write pulse signal (PROG) and as programming voltage input pin VPP. After the falling edge of PSEL, PSEL must stay at "0" state during all programming operations. Note: If protection level 1 to 3 has been programmed (see section 10.6) and the programming mode has been left, it is no more possible to enter the programming mode ! 10.4.2 OTP Memory Access Mode Selection When the C540U/C541U has been put into the programming mode using the basic programming mode selection, several access modes of the OTP memory programming interface are available. The conditions for the different control signals of these access modes are listed in table 10-3. Table 10-3 Access Modes Selection Access Mode Program OTP memory byte Read OTP memory byte Program OTP lock bits Read OTP lock bits Read OTP version byte EA/ VPP VPP VIH VPP VIH VIH H H L H Byte addr. of sign. byte H H H L PROG PRD H PMSEL 1 H 0 H Address (Port 2) A0-7 A8-15 - Data (Port 0) D0-7 D1,D0 see table 4 D0-7
The access modes from the table above are basically selected by setting the two PMSEL1,0 lines to the required logic level. The PROG and PRD signal are the write and read strobe signal. Data is transfered via port 0 and addresses are applied to port 2. The following sections describes the details of the different access modes.
Semiconductor Group
10-7
1997-10-01
OTP Memory Operation C540U / C541U
10.5
Program / Read OTP Memory Bytes
The program/read OTP memory byte access mode is defined by PMSEL1,0 = 1,1. It is initiated when the PMSEL1,0 = 1,1 is valid at the rising edge of PALE. With the falling edge of PALE the upper addresses A8-A12 of the 13-bit OTP memory address are latched. After A8-A12 has been latched, A0-A7 is put on the address bus (port 2). A0-A7 must be stable when PROG is low or PRD is low. If subsequent OTP address locations are accessed with constant address information at the high address lines A8-12, A8-A12 must only be latched once (page address mechanism). Figure 10-6 shows a typical OTP memory programming cycle with a following OTP memory read operation. In this example A0-A12 of the read operation are identical to A8-A12 of the preceeding programming operation. For the C540U address line A12 is not required.
PMSEL1,0 Port 2 PALE Port 0 A8-A12
1,1 A0-A7
D0 - D7 min. 100 s
D0 - D7
PROG
min. 100 ns
PRD
MCT03419
Figure 10-6 C541U Programming / VerifyOTP Memory Access Waveform If the address lines A8-A12 must be updated, PALE must be activated for the latching of the new A8-A12 value. Control, address, and data information must only be switched when the PROG and PRD signals are at high level. The PALE high pulse must always be executed if a different access mode has been used prior to the actual access mode.
Semiconductor Group
10-8
1997-10-01
OTP Memory Operation C540U / C541U
Figure 10-7 shows a waveform example of the program/read mode access for several OTP memory bytes. In this example OTP memory locations 3FDH to 400H are programmed. Thereafter, OTP memory locations 400H and 3FDH are read.
PMSEL1,0 PALE 3FD Port 2 Port 0 PROG PRD 03 FD Data 1 3FE FE Data 2 3FF FF Data 3
1,1
400 04 00 Data 4
400 00 Data 4 03
3FD FD Data 1
MCT03420
Figure 10-7 Typical OTP Memory Programming/Verify Access Waveform
Semiconductor Group
10-9
1997-10-01
OTP Memory Operation C540U / C541U
10.6
Lock Bits Programming / Read
The C540U/C541U has two programmable lock bits which, when programmed according tabie 104, provide four levels of protection for the on-chip OTP code memory. The state of the lock bits can also be read. Table 10-4 Lock Bit Protection Types Lock Bits at D1,D0 D1 1 D0 1 Protection Protection Type Level Level 0 The OTP lock feature is disabled. During normal operation of the C540U/C541U, the state of the EA pin is not latched on reset. During normal operation of the C540U/C541U, MOVC instructions executed from external program memory are disabled from fetching code bytes from internal memory. EA is sampled and latched on reset.An OTP memory read operation is only possible using the OTP verification mode for protection level 1. Further programming of the OTP memory is disabled (reprogramming security). Same as level 1, but also OTP memory read operation using OTP verification mode is disabled. Same as level 2; but additionally external code execution by setting EA=low during normal operation of the C540U/C541U is no more possible. External code execution, which is initiated by an internal program (e.g. by an internal jump instruction above the ROM boundary), is still possible.
1
0
Level 1
0 0
1 0
Level 2 Level 3
Note : A 1 means that the lock bit is unprogrammed. 0 means that lock bit is programmed. For a OTP verify operation at protection level 1, the C540U/C541U must be put into the OTP verification mode 2. If a device is programmed with protection level 2 or 3, it is no more possible to verify the OTP content of a customer rejected (FAR) OTP device. When a protection level has been activated by programming of the lock bits, the basic programming mode must be left for activation of the protection mechanisms. This means, after the activation of a protection level further OTP program/veriry operations are still possible if the basic programming mode is maintained. The state of the lock bits can always be read if protection level 0 is selected. If protection level 1 to 3 has been programmed and the programming mode has been left, it is no more possible to enter the programming mode: In this case, also the lock bits cannot be read anymore. Figure 10-8 shows the waveform of a lock bit write/read access. For a simple drawing, the PROG pulse is shortened. In reality, for Lock Bit programming, a 100s PROG low puls must be applied.
Semiconductor Group
10-10
1997-10-01
OTP Memory Operation C540U / C541U
PMSEL1,0 PALE Port 0 (D1, D0) PROG PRD 1,0
1,0
1,0
MCT03421
The example shows the programming and reading of a protection level 1.
Figure 10-8 Write/Read Lock Bit Waveform
Semiconductor Group
10-11
1997-10-01
OTP Memory Operation C540U / C541U
10.7
Access of Version Bytes
The C540U/C541U provides three version bytes at address locations FCH, FDH, and FEH. The information stored in the version bytes, is defined by the mask of each microcontroller step, Therefore, the version bytes can be read but not written. The three version bytes hold information as manufacturer code, device type, and stepping code. For reading of the version bytes the control lines must be used according table 10-3 and figure 109. The address of the version byte must be applied at the port 1 address lines. PALE must not be activated.
PMSEL1,0 PALE Port 2 Port 0 PROG PRD FC Ver. 0
0,1
FD Ver. 1
FE Ver. 2
MCT03422
Figure 10-9 Read Version Byte(s) Waveform Version bytes are typically used by programming systems for adapting the programming firmware to specifc device characteristics such as OTP size etc. Note: The 3 version bytes are implemented in a way that they can be also read during normal program execution mode as a mapped register with bit RMAP in SFR SYSCON set. The addresses of the version bytes in normal mode and programming mode are identical and therefore they are located in the SFR address range. The first step of the C540U/C541U will contain the following information at the version bytes : Name Version Byte 0 Version Byte 1 Version Byte 2 Address FCH FDH FEH Value C5H C1H 01H
Future steppings of the C540U/C541U will have a different version byte 2 (incremented value. version bytes 0 and 1 will remain unchanged for future steppings of the C540U/C541U.
Semiconductor Group
10-12
1997-10-01
OTP Memory Operation C540U / C541U
10.8
OTP Verify with Protection Level 1
If the C540U/C541U OTP program memory is protected in protection level 1), an OTP verification as shown in figure 10-10 is used to verify the content of the OTP. The detailed timing characteristics of this OTP verification mode is shown in the AC specifications (chapter 11).
RESET 6 CLP 1. ALE pulse after reset ALE Latch Port 0 Data for Addr. 0 Latch
Data for Addr. 1 Data for Ad. X 16 - 1
3 CLP
Latch
Data for Addr. X 16
Latch
Data for Addr. X 16 + 1
P3.5 Inputs : ALE = V SS PSEN, EA = V IH RESET =
Low: Verify Error High: Verify ok
MCT03289
Figure 10-10 OTP Verification Mode Timing The OTP verification mode is selected when the inputs PSEN, EA, and ALE are put to the specified logic levels. With RESET going inactive, the OTP verification mode sequence is started. The C541U outputs an ALE signal with a period of 3 CLPand expects data bytes at port 0. The data bytes at port 0 are assigned to the OTP addresses in the following way: 1. Data Byte = 2. Data Byte = 3. Data Byte = : 16. Data Byte = : content of internal OTP address 0000H content of internal OTP address 0001H content of internal OTP address 0002H content of internal OTP address 000FH
The C540U/C541U does not output any address information during the OTP verification mode. The first data byte to be verified is always the byte which is assigned to the internal OTP address 0000H and must be put onto the data bus with the first ALE pulse after the falling edge of RESET. With each following ALE pulse the ROM address pointer is internally incremented and the expected data byte for the next OTP address must be delivered externally. Between two ALE pulses the data at port 0 is latched (at 3 CLP after ALE rising edge) and compared internally with the OTP content of the actual address. If an verify error is detected, the error
Semiconductor Group
10-13
1997-10-01
OTP Memory Operation C540U / C541U
condition is stored internally. After each 16th data byte the cumulated verify result (pass or fail) of the last 16 verify operations is output at P3.5. This means that P3.5 stays at static level (low for fail and high for pass) during the time when the following 16 bytes are checked. In OTP verification mode, the C540U/C541U must be provided with a system clock at the XTAL pins. Figure 10-11 shows an application example of a external circuitry which allows to verify a protected OTP inside the. With RESET going inactive, the C540U/C541U starts the OTP verify sequence. Its ALE is clocking an 14-bit address counter. This counter generates the addresses for an external EPROM which is programmed with the content of the internal (protected) OTP. The verify detect logic typically displays the state of the verify error output P3.5. P3.5 can be latched with the falling edge of ALE. When the last byte of the internal OTP has been handled, the C540U/C541U starts generating a PSEN signal. This signal or the CY signal of the address counter indicate to the verify detect logic the end of the internal OTP verification.
P3.5
Verify Detect Logic CY CLK 2K 12 / 13 - Bit Address Counter R A0 - A12 or A0 - A11
ALE
C540U C541U
&
Compare Code ROM
V CC
& RESET Port 0 D0 - D7
V CC
EA P2.7 PSEN CS OE
MCS03423
Figure 10-11 OTP Verification with Protection Level 1 - External Circuitry Example
Semiconductor Group
10-14
1997-10-01
Device Specifications C540U / C541U
11
Device Specifications
Advance Information 11.1 Absolute Maximum Ratings Ambient temperature under bias (TA) .............................................................. 0 C to + 70 C Storage temperature (TST) ...............................................................................- 65 C to + 150 C Voltage on VCC pins with respect to ground (VSS) ............................................- 0.5 V to 6.5 V Voltage on any pin with respect to ground (VSS) ..............................................- 0.5 V to VCC + 0.5 V Input current on any pin during overload condition..........................................- 10 mA to + 10 mA Absolute sum of all input currents during overload condition ..........................| 100 mA | Power dissipation.............................................................................................TBD
Note: Stresses above those listed under "Absolute Maximum Ratings" may cause permanent damage of the device. This is a stress rating only and functional operation of the device at these or any other conditions above those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for longer periods may affect device reliability. During overload conditions (VIN > VCC or VIN < VSS) the Voltage on VCC pins with respect to ground (VSS) must not exceed the values defined by the absolute maximum ratings.
Semiconductor Group
11-1
1997-10-01
Device Specifications C540U / C541U
11.2 DC Characteristics
VCC = 4.0V to 5.5V (5V +10%, -20%); VSS = 0 V
Parameter Input low voltage (except EA, RESET) Input low voltage (EA) Input low voltage (RESET) Symbol min.
TA = 0 to 70 C
Limit Values max. 0.2 VCC - 0.1 0.2 VCC - 0.3 0.2 VCC + 0.1 V V V V V V V V V V V A A A pF mA - - - - - - - 0.5 - 0.5 - 0.5 0.2 VCC + 0.9 0.7 VCC 0.6 VCC - - - 2.4 0.9 VCC 2.4 0.9 VCC - 10 - 65 - - - 10.9 Unit Test Condition
VIL VIL1 VIL2
Input high voltage (except XTAL1, VIH RESET) Input high voltage to XTAL1 Input high voltage to RESET Output low voltage Ports 1, 2, 3 P1.0, P1.1, P3.0 Output low voltage (port 0, ALE, PSEN)
VCC + 0.5 VCC + 0.5 VCC + 0.5
0.45 0.45 0.45 - - - - - 50 - 650 1 10
VIH1 VIH2 VOL VOL1
IOL = 1.6 mA 1) IOL = 10 mA 1) IOL = 3.2 mA 1) IOH = - 80 A, IOH = - 10 A IOH = - 800 A IOH = - 80 A 2) VIN = 0.45 V VIN = 2 V
0.45 < VIN < VCC
Output high voltage (ports 1, 2, 3) VOH Output high voltage (port 0 in external bus mode, ALE, PSEN) Logical 1-to-0 transition current (ports 1, 2, 3) Input leakage current (port 0, EA) Pin capacitance Overload current Programming voltage Notes see next page
VOH2
Logic 0 input current (ports 1, 2, 3) IIL
ITL ILI CIO IOV VPP
fc = 1 MHz, TA = 25 C 7)
6) 7)
5
12.1
V
11.5 V 5%
Semiconductor Group
11-2
1997-10-01
Device Specifications C540U / C541U
Power Supply Current Parameter Active mode Idle mode Power-down mode
Notes : 1) Capacitive loading on ports 0 and 2 may cause spurious noise pulses to be superimposed on the VOL of ALE and port 3. The noise is due to external bus capacitance discharging into the port 0 and port 2 pins when these pins make 1-to-0 transitions during bus operation. In the worst case (capacitive loading > 100 pF), the noise pulse on ALE line may exceed 0.8 V. In such cases it may be desirable to qualify ALE with a schmitt-trigger, or use an address latch with a schmitt-trigger strobe input. 2) Capacitive loading on ports 0 and 2 may cause the VOH on ALE and PSEN to momentarily fall below the 0.9 VCC specification when the address lines are stabilizing. 3) IPD (power-down mode) is measured under following conditions: EA = Port 0 = VCC ; XTAL2 = N.C.; XTAL1 = VSS ; RESET = VSS; all other pins are disconnected. the USB transceiver is switched off; 4) ICC (active mode) is measured with: XTAL1 driven with tCLCH , tCHCL = 5 ns , VIL = VSS + 0.5 V, VIH = VCC - 0.5 V; XTAL2 = N.C.; EA = RESET = Port 0 = Port 1 = VCC ; all other pins are disconnected. ICC would be slightly higher if a crystal oscillator is used (appr. 1 mA). 5) ICC (idle mode) is measured with all output pins disconnected and with all peripherals disabled; XTAL1 driven with tCLCH , tCHCL = 5 ns, VIL = VSS + 0.5 V, VIH = VCC - 0.5 V; XTAL2 = N.C.; EA = RESET = Vss ; Port 0 = VCC ; all other pins are disconnected; 6) Overload conditions occur if the standard operating conditions are exceeded, ie. the voltage on any pin exceeds the specified range (i.e. VOV > VCC + 0.5 V or VOV < VSS - 0.5 V). The supply voltage VCC and VSS must remain within the specified limits. The absolute sum of input currents on all port pins may not exceed 50 mA. 7) Not 100% tested, guaranteed by design characterization. 8) The typical ICC values are periodically measured at TA = +25 C but not 100% tested. 9) The maximum ICC values are measured under worst case conditions (TA = 0 C and VCC = 5.5 V)
Symbol 12 MHz 12 MHz
Limit Values typ. 8) max. 9) TBD TBD 50 15 TBD TBD
Unit Test Condition mA mA A
4) 5)
ICC ICC IPD
VCC = 2...5.5 V 3)
Semiconductor Group
11-3
1997-10-01
Device Specifications C540U / C541U
11.3 AC Characteristics
VCC = 4.0V to 5.5V (5V +10%, -20%); VSS = 0 V
Program Memory Characteristics Parameter Symbol
TA = 0 to 70 C
(CL for port 0, ALE and PSEN outputs = 100 pF; CL for all other outputs = 80 pF)
Limit Values 10-MHz clock Duty Cycle 0.4 to 0.6 min. max. - - - 80 - - 51 - 23 - 140 Variable Clock 1/CLP = 2 MHz to 12 MHz **) min. CLP - 40 max. -
Unit
ALE pulse width Address setup to ALE Address hold after ALE ALE to valid instruction in ALE to PSEN PSEN pulse width PSEN to valid instruction in Input instruction hold after PSEN Input instruction float after PSEN Address valid after PSEN Address to valid instruction in Address float to PSEN
*)
tLHLL tAVLL tLLAX tLLIV tLLPL tPLPH tPLIV tPXIX tPXIZ *) tPXAV tAVIV tAZPL
*)
43 13 13 - 13 86 - 0 - 28 - 0
ns ns ns ns ns ns
TCLHmin -20 - TCLHmin -20 - - 2 CLP - 87 TCLLmin -20 - CLP+ - TCLHmin -30 - 0 - TCLLmin - 5 - 0
CLP+ ns TCLHmin- 65 - - ns ns TCLLmin -10 ns 2 CLP + ns TCLHmin -60 - ns
Interfacing the C540U/C541U to devices with float times up to 28 ns is permissible. This limited bus contention will not cause any damage to port 0 drivers. For correct function of the USB module the C540U/C541U must operate with 12 MHz external clock. The microcontroller (except the USB module) operates down to 2 MHz.
**)
Semiconductor Group
11-4
1997-10-01
Device Specifications C540U / C541U
AC Characteristics (cont'd) External Data Memory Characteristics Parameter Symbol 10-MHz clock Duty Cycle 0.4 to 0.6 min. RD pulse width WR pulse width Address hold after ALE RD to valid data in Data hold after RD Data float after RD ALE to valid data in Address to valid data in ALE to WR or RD Address valid to WR WR or RD high to ALE high Data valid to WR transition Data setup before WR Data hold after WR Address float after RD max. - - - 110 Limit Values Variable Clock 1/CLP= 2 MHz to 12 MHz Unit
min. 3 CLP - 70 3 CLP - 70 CLP - 27 - 0
max. - - - 2 CLP+ TCLHmin - 90 - CLP - 20 4 CLP - 133 4 CLP + TCLHmin -155 CLP+ TCLLmin+ 50 - TCLHmin + 25 - ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns
tRLRH tWLWH tLLAX2 tRLDV tRHDX tRHDZ tLLDV tAVDV tLLWL tAVWL tWHLH tQVWX tQVWH tWHQX tRLAZ
180 180 56 - 0 - - - 66 70 8 8 163 8 -
63 200 211 166 - 58 - - - 0
- - - CLP + TCLLmin - 50 2 CLP - 97 TCLHmin - 25 TCLLmin - 25
3 CLP + - TCLLmin - 120 TCLHmin - 25 - - 0
Semiconductor Group
11-5
1997-10-01
Device Specifications C540U / C541U
External Clock Drive Characteristics Parameter Symbol CPU Clock = 12 MHz Duty cycle 0.4 to 0.6 min. Oscillator period High time Low time Rise time Fall time Oscillator duty cycle Clock cycle CLP TCLH TCLL 83.3 33 33 - - 0.4 33 max. 83.3 - - 12 12 0.6 50 Variable CPU Clock 1/CLP = 2 to 12 MHz min. 83.3 33 33 - - 33 / CLP CLP * DCmin max. 500 CLP-TCLL CLP-TCLH 12 12 1 - 33 / CLP ns ns ns ns ns - Unit
tR tF
DC TCL
CLP * DCmax ns
SSC Interface Characteristics Parameter Clock Cycle Time : Master Mode Slave Mode Clock high time Clock low time Data output delay Data output hold Data input setup Data input hold TC bit set delay SLS low to first SCLK clock edge SLS low to STO active SLS high to STO tristate Data output delay (already defined) Symbol min. Limit Values max. - - - - 100 - - - 8 CLP - - 100 100 100 ns ns ns ns ns ns ns ns ns ns ns ns ns ns 667 667 300 300 - 0 100 50 - 2 tCLCL Unit
tSCLK tSCLK tSCH tSCL tD tHO tS tHI tDTC tSC tTS tST tD
Last SCLK clock edge to SLS high tCS
tCLCL
0 - -
Semiconductor Group
11-6
1997-10-01
Device Specifications C540U / C541U
t LHLL
ALE
t AVLL t
LLIV
t PLPH t LLPL t PLIV
PSEN
t AZPL t LLAX
t PXAV t PXIZ t PXIX
Port 0
A0 - A7
Instr.IN
A0 - A7
t AVIV
Port 2
A8 - A15
A8 - A15
MCT00096
Figure 11-12 Program Memory Read Cycle
Semiconductor Group
11-7
1997-10-01
Device Specifications C540U / C541U
t WHLH
ALE
PSEN
t LLDV t LLWL
RD
t RLRH
t RLDV t AVLL t LLAX2 t RLAZ
Port 0 A0 - A7 from Ri or DPL Data IN
t RHDZ t RHDX
A0 - A7 from PCL Instr. IN
t AVWL t AVDV
Port 2
P2.0 - P2.7 or A8 - A15 from DPH
A8 - A15 from PCH
MCT00097
Figure 11-13 Data Memory Read Cycle
Semiconductor Group
11-8
1997-10-01
Device Specifications C540U / C541U
t WHLH
ALE
PSEN
t LLWL
WR
t WLWH
t QVWX t AVLL t LLAX2
A0 - A7 from Ri or DPL
t WHQX t QVWH
Data OUT A0 - A7 from PCL Instr.IN
Port 0
t AVWL
Port 2 P2.0 - P2.7 or A8 - A15 from DPH A8 - A15 from PCH
MCT00098
Figure 11-14 Data Memory Write Cycle
TCL H
tR
tF
XTAL1
TCL L CLP
0.7 V CC 0.2 V CC - 0.1
MCT03310
Figure 11-15 External Clock Drive on XTAL1
Semiconductor Group
11-9
1997-10-01
Device Specifications C540U / C541U
t SCLK t SCL
SCLK
t SCH
tD
STO MSB
t HD
~ ~
LSB
tS
SRI
t HI
MSB
~ ~
~ ~
~ ~
LSB
~ ~
t DTC
TC
~ ~
MCT02417
Notes :
Shown is the data/clock relationship for CPOL=CPHA=1. The timing diagram is valid for the other cases accordingly. In the case of slave mode and CPHA=0, the output delay for the MSB applies to the falling edge of SLS (if transmitter is enabled). In the case of master mode and CPHA=0, the MSB becomes valid after the data has been written into the shift register, i.e. at least one half SCLK clock cycle before the first clock transition.
Figure 11-16 SSC Master Mode Timing
Semiconductor Group
11-10
1997-10-01
Device Specifications C540U / C541U
t SCLK
t SCH
t SCL
SCLK (CPOL = 1)
SCLK (CPOL = 0)
t SC
SLS
t CS t ST
t TS
STO (CPHA = 0) DOUT 7
tD
tD
DOUT 0
tD
tD
STO (CPHA = 1) DOUT 7 DOUT 1
tD
DOUT 0
MCT03390
Figure 11-17 SSC Slave Mode Timing
Semiconductor Group
11-11
1997-10-01
Device Specifications C540U / C541U
11.4 AC Characteristics of Programming Mode
VCC = 5 V 10 %; VPP = 11.5 V 5 %; TA = 25 C 10 C
Parameter ALE pulse width PMSEL setup to ALE rising edge Symbol min. Limit Values max. - - - - - - - - - - 75 20 - 20 - ns ns ns ns ns ns s ns ns ns ns ns s ns 500 ns ns 35 10 10 10 100 0 10 10 100 100 - - 0 - 1 100 83.3 Unit
tPAW tPMS
Address setup to ALE, PROG, or PRD falling tPAS edge Address hold after ALE, PROG, or PRD falling edge Address, data setup to PROG or PRD Address, data hold after PROG or PRD PMSEL setup to PROG or PRD PMSEL hold after PROG or PRD PROG pulse width PRD pulse width Address to valid data out PRD to valid data out Data hold after PRD Data float after PRD
tPAH tPCS tPCH tPMS tPMH tPWW tPRW tPAD tPRD tPDH tPDF
PROG high between two consecutive PROG tPWH1 low pulses PRD high between two consecutive PRD low tPWH2 pulses XTAL clock period
tCLKP
Semiconductor Group
11-12
1997-10-01
Device Specifications C540U / C541U
t PAW
PALE
t PMS
PMSEL1,0 H, H
t PAS
Port 2 A8-A13
t PAH
A0-A7
Port 0
D0-D7
PROG
t PWH t PCS t PWW t PCH
MCT03369
Figure 11-18 Programming Code Byte - Write Cycle Timing
Semiconductor Group
11-13
1997-10-01
Device Specifications C540U / C541U
t PAW
PALE
t PMS
PMSEL1,0 H, H
t PAS
Port 2 A8-13
t PAH
A0-7
t PAD
Port 0 D0-7
t PDH
t PRD
PRD
t PDF t PWH
t PCS
Notes: PROG must be high during a programming read cycle.
t PRW
t PCH
MCT03392
Figure 11-19 Verify Code Byte - Read Cycle Timing
Semiconductor Group
11-14
1997-10-01
Device Specifications C540U / C541U
PMSEL1,0
H, L
H, L
Port 0
D0, D1
D0, D1
t PCS t PMS
PROG
t PCH t PMH t PDH t PWW t PMS t PRD t PRW t PMH t PDF
PRD Note: PALE should be low during a lock bit read / write cycle.
MCT03393
Figure 11-20 Lock Bit Access Timing
PMSEL1,0
L, H
Port 2
e. g. FD H
t PCH
Port 0 D0-7
t PCS t PRD t PMS
PRD
t PDH t PDF t PMH
t PRW
Note: PROG must be high during a programming read cycle.
MCT03394
Figure 11-21 Version Byte Read Timing
Semiconductor Group
11-15
1997-10-01
Device Specifications C540U / C541U
11.5 OTP Verification Characteristics OTP Verification Mode for Protection Level 1 Parameter ALE pulse width ALE period Data valid after ALE Data stable after ALE P3.5 setup to ALE low Oscillator frequency Symbol min. Limit Values typ 2 tCLCL 12 tCLCL - - max. - - 4 tCLCL - - 6 ns ns ns ns ns MHz - - - 8 tCLCL - 4 Unit
tAWD tACY tDVA tDSA tAS
1/tCLCL
tCLCL
-
t ACY t AWD
ALE
t DSA t DVA
Port 0 Data Valid
t AS
P3.5
MCT02613
Figure 11-22 OTP Verification Mode for Protection Level 1
Semiconductor Group
11-16
1997-10-01
Device Specifications C540U / C541U
11.6 USB Transceiver Characteristics
VCC = 4.0V to 5.5V (5V +10%, -20%); VSS = 0 V
Parameter Output impedance (high state) Output impedance (low state) Input leakage current Tristate output off-state current Crossover point
Notes :
TA = 0 to 70 C
Limit Values min. max. 43 51 5 10 2.0 A A V
1)
Symbol
Unit
Test Condition
RDH RDL II I OZ VCR
28 28 - - 1.3
VIN = VSS or VCC VOUT = VSS or VCC 1)
2)
1) This value includes an external resistor of 30 1% (see "Load for D+/D-" diagram for testing details) 2) The crossover point is in the range of 1.3V to 2.0V for the high speed mode with a 50pF capacitance. In the low-speed mode with a 100pF or greater capacitance, the crossover point is in the range of 1.3V to 2.0V.
Parameter High speed mode rise time High speed mode fall time Low speed mode rise time Low speed mode fall time
Symbol min.
Limit Values max. 20 20 300 300 4 4 75 75
Unit ns ns ns ns
tFR tFF tLR tLF
Semiconductor Group
11-17
1997-10-01
Device Specifications C540U / C541U
VCC -0.5 V
0.2 VCC+0.9 Test Points 0.2 VCC -0.1
MCT00039
0.45 V
AC Inputs during testing are driven at VCC - 0.5 V for a logic '1' and 0.45 V for a logic '0'. Timing measurements are made at VIHmin for a logic '1' and VILmax for a logic '0'. Figure 11-23 AC Testing: Input, Output Waveforms
VLoad +0.1 V VLoad VLoad -0.1 V
Timing Reference Points
VOH -0.1 V
VOL +0.1 V
MCT00038
For timing purposes a port pin is no longer floating when a 100 mV change from load voltage occurs and begins to float when a 100 mV change from the loaded VOH/VOL level occurs. IOL/IOH 20 mA Figure 11-24 AC Testing : Float Waveforms
2.8 V Test Point 1.5 k *)
30 k D.U.T 15 k
S1
CL
Test S1 Close Open Open Close
MCS03425
C L = 50 pF, full speed C L = 50 pF, low speed (min. timing) C L = 350 pF, low speed (max. timing) *) 1.5 k on D- (low speed) or D+ (full speed) only
D- / LS D+ / LS D- / FS D+ / FS
Figure 11-25 Load for D+/D-
Semiconductor Group
11-18
1997-10-01
Device Specifications C540U / C541U
Crystal Oscillator Mode C XTAL2 2 - 12 MHz XTAL1 C Crystal Mode: C = 20 pF 10 pF (Incl. Stray Capacitance)
Driving from External Source N.C. XTAL2
External Oscillator Signal
XTAL1
MCS03426
Figure 11-26 Recommended Oscillator Circuits for Crystal Oscillator
Semiconductor Group
11-19
1997-10-01
Device Specifications C540U / C541U
11.7 Package Information
Plastic Package, P-LCC-44-1 (SMD) (Plastic Leaded Chip Carrier Package)
Figure 11-27 P-LCC-44-1 Package Outline
Sorts of Packing Package outlines for tubes, trays etc. are contained in our Data Book "Package Information" SMD = Surface Mounted Device Semiconductor Group 11-20
Dimensions in mm 1997-10-01
GPL05102
Device Specifications C540U / C541U
Plastic Package, P-SDIP-52-1 (Plastic Shrink Dual In-Line Package)
Figure 11-28 P-SDIP-52-1 Package Outline
Sorts of Packing Package outlines for tubes, trays etc. are contained in our Data Book "Package Information" Dimensions in mm Semiconductor Group 11-21 1997-10-01
GPD05262
Device Specifications C540U / C541U
Semiconductor Group
11-22
1997-10-01
Index C540U / C541U
12
Index
Note : Bold page numbers refer to the main definition part of SFRs or SFR bits.
BRS0 . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-28 BRS1 . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-28 BRS2 . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-28
A
A06-A03 . . . . . . . . . . . . . . . . . . . . 3-8, 6-72 A16-A13 . . . . . . . . . . . . . . . . . . . . 3-8, 6-72 A26-A23 . . . . . . . . . . . . . . . . . . . . 3-9, 6-72 A36-A33 . . . . . . . . . . . . . . . . . . . . 3-9, 6-72 A46-A43 . . . . . . . . . . . . . . . . . . . . 3-9, 6-72 Absolute maximum ratings . . . . . . . . . . 11-1 AC . . . . . . . . . . . . . . . . . . . . . . . . . 2-3, 3-7 AC characteristics . . . . . . . . . 11-4 to 11-19 Data memory read cycle. . . . . . . . . . 11-8 Data memory write cycle . . . . . . . . . 11-9 External clock timing. . . . . . . . . . . . . 11-9 Lock bit access timing. . . . . . . . . . . 11-15 Program memory read cycle. . . . . . . 11-7 Programming mode . . . . . . . . . . . . 11-12 Programming mode read cycle. . . . 11-14 Programming mode write cycle . . . 11-13 Protected ROM/OTP verify timing . 11-16 Version byte access timing . . . . . . . 11-15 AC Testing Float waveforms . . . . . . . . . . . . . . . 11-18 Input/output waveforms . . . . . . . . . 11-18 Load for D+/D- . . . . . . . . . . . . . . . . 11-18 ACC . . . . . . . . . . . . . . . . . . . . . 2-2, 3-4, 3-7 ACK0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 ACK1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 ACK2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 ACK3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 ACK4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 ACKn . . . . . . . . . . . . . . . . . . . . . 6-70, 7-12 ADROFF. . . . . . . . . . . . . . . . . 3-5, 3-7, 6-55 AIE0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 AIE1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 AIE2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 AIE3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 AIE4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 AIEn . . . . . . . . . . . . . . . . . . . . . . . 6-68, 7-7 ALE signal . . . . . . . . . . . . . . . . . . . . . . . 4-4 AO5-0 . . . . . . . . . . . . . . . . . . . . . . 3-7, 6-55
C
C/T . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-16 CBF0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 CBF1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 CBF2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 CBF3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 CBF4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 CBFn . . . . . . . . . . . . . . . . . . . . . . . . . . 6-66 CLREP0. . . . . . . . . . . . . . . . . . . . . . . . . 3-8 CLREP1. . . . . . . . . . . . . . . . . . . . . . . . . 3-8 CLREP2. . . . . . . . . . . . . . . . . . . . . . . . . 3-9 CLREP3. . . . . . . . . . . . . . . . . . . . . . . . . 3-9 CLREP4. . . . . . . . . . . . . . . . . . . . . . . . . 3-9 CLREPn. . . . . . . . . . . . . . . . . . . . . . . . 6-67 CPHA. . . . . . . . . . . . . . . . . . . . . . 3-6, 6-28 CPOL . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-28 CPU Accumulator . . . . . . . . . . . . . . . . . . . . 2-2 B register . . . . . . . . . . . . . . . . . . . . . . 2-3 Basic timing . . . . . . . . . . . . . . . . . . . . 2-4 Fetch/execute diagram. . . . . . . . . . . . 2-5 Functionality . . . . . . . . . . . . . . . . . . . . 2-2 Program status word . . . . . . . . . . . . . 2-2 Stack pointer . . . . . . . . . . . . . . . . . . . 2-3 CPU timing. . . . . . . . . . . . . . . . . . . . . . . 2-5 CY . . . . . . . . . . . . . . . . . . . . . . . . . 2-3, 3-7
D
DA . . . . . . . . . . . . . . . . . . . . . . . . 3-8, 6-57 DADD. . . . . . . . . . . . . . . . . . . . . . 3-7, 6-76 DAI. . . . . . . . . . . . . . . . . . . . 3-8, 6-62, 7-11 DAIE . . . . . . . . . . . . . . . . . . . 3-8, 6-60, 7-6 DBM0. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 DBM1. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 DBM2. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DBM3. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DBM4. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DBMn. . . . . . . . . . . . . . . . . . . . . . . . . . 6-65 DC characteristics . . . . . . . . . . 11-2 to 11-3 DCR . . . . . . . . . . . . . . . . . . . . 3-5, 3-8, 6-57 DDI. . . . . . . . . . . . . . . . . . . . 3-8, 6-62, 7-11 DDIE . . . . . . . . . . . . . . . . . . . 3-8, 6-60, 7-6 Device characteristics . . . . . . 11-1 to 11-21 DIER . . . . . . . . . . . . . . . 3-5, 3-8, 6-60, 7-6 DINIT . . . . . . . . . . . . . . . . . . . . . . 3-8, 6-58 1997-10-01
B
B . . . . . . . . . . . . . . . . . . . . . . . . 2-3, 3-4, 3-7 Basic CPU timing . . . . . . . . . . . . . . . . . . 2-4 Block diagram. . . . . . . . . . . . . . . . . . . . . 2-1
Semiconductor Group
12-1
Index C540U / C541U
DIR0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 DIR1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 DIR2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DIR3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DIR4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DIRn . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-66 DIRR. . . . . . . . . . . . . . . 3-5, 3-8, 6-62, 7-11 DNR0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 DNR1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 DNR2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DNR3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DNR4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DNRIE0 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 DNRIE1 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 DNRIE2 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DNRIE3 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DNRIE4 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DNRIEn . . . . . . . . . . . . . . . . . . . . 6-68, 7-7 DNRn . . . . . . . . . . . . . . . . . . . . . 6-70, 7-12 DONE0 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 DONE1 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 DONE2 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DONE3 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DONE4 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 DONEn . . . . . . . . . . . . . . . . . . . . . . . . . 6-67 DPH . . . . . . . . . . . . . . . . . . . . . . . . 3-4, 3-6 DPL . . . . . . . . . . . . . . . . . . . . . . . . 3-4, 3-6 DPWDR . . . . . . . . . . . . . . . . . 3-5, 3-8, 6-59
E
EA. . . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-4 EALE . . . . . . . . . . . . . . . . . . . . . . . 3-7, 4-4 Emulation concept . . . . . . . . . . . . . . . . . 4-5 EOD0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EOD1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EOD2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EOD3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EOD4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EODIE0 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EODIE1 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EODIE2 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EODIE3 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EODIE4 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EODIEn . . . . . . . . . . . . . . . . . . . . 6-69, 7-7 EODn . . . . . . . . . . . . . . . . . . . . . 6-70, 7-12 EPBA0 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EPBA1 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EPBA2 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
EPBA3 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPBA4 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPBAn . . . . . . . . . . . . . . . . . . . . . 3-5, 6-72 EPBC0 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EPBC1 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EPBC2 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPBC3 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPBC4 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPBCn . . . . . . . . . . . . . . . . . . 3-5, 6-64, 7-8 EPBS0 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EPBS1 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EPBS2 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPBS3 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPBS4 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPBSn . . . . . . . . . . . . . . . . . . . . . 3-5, 6-66 EPI4-0 . . . . . . . . . . . . . . . . . 3-7, 6-56, 7-13 EPIE0. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EPIE1. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EPIE2. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPIE3. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPIE4. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPIEn. . . . . . . . . . . . . . . . . . . 3-5, 6-68, 7-7 EPIR0 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EPIR1 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EPIR2 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPIR3 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPIR4 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPIRn . . . . . . . . . . . . . . . . . 3-5, 6-70, 7-12 EPLEN0 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EPLEN1 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 EPLEN2 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPLEN3 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPLEN4 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 EPLENn . . . . . . . . . . . . . . . . . . . . 3-5, 6-72 EPS2-0 . . . . . . . . . . . . . . . . . . . . 3-7, 6-53 EPS7 . . . . . . . . . . . . . . . . . . . . . . 3-7, 6-53 EPSEL . . . . . . . . . . . . . . . . . . 3-5, 3-7, 6-53 ESP0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 ESP1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 ESP2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 ESP3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 ESP4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 ESPn . . . . . . . . . . . . . . . . . . . . . . . . . . 6-66 ESSC . . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-5 ET0 . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-4 ET1 . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-4 EUDI . . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-5
Semiconductor Group
12-2
1997-10-01
Index C540U / C541U
EUEI . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-5 EWPD. . . . . . . . . . . . . . . . . . . . . . . 3-6, 9-2 EX0. . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-4 EX1. . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-4 Execution of instructions . . . . . . . . 2-4, 2-5 External bus interface. . . . . . . . . . 4-1 to 4-4 ALE signal. . . . . . . . . . . . . . . . . . . . . . 4-4 ALE switch-off control . . . . . . . . . . . . . 4-4 Overlapping of data/program memory 4-3 Program memory access . . . . . . . . . . 4-3 Program/data memory timing . . . . . . . 4-2 PSEN signal . . . . . . . . . . . . . . . . . . . . 4-3 Role of P0 and P2. . . . . . . . . . . . . . . . 4-1
F
F0 . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3, 3-7 F1 . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3, 3-7 Fail save mechanisms . . . . . . . . . 8-1 to 8-7 Fast power-on reset . . . . . . . . . . . . 5-3, 8-7 Features . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 FNR10-0. . . . . . . . . . . . . . . . . . . . 3-8, 6-63 FNRH . . . . . . . . . . . . . . . . . . . 3-5, 3-8, 6-63 FNRL . . . . . . . . . . . . . . . . . . . 3-5, 3-8, 6-63 Functional units . . . . . . . . . . . . . . . . . . . 1-1 Fundamental structure . . . . . . . . . . . . . . 2-1
IE1 . . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-9 IEN0. . . . . . . . . . . . . . . . . . . . . 3-4, 3-6, 7-4 IEN1. . . . . . . . . . . . . . . . . . . . . 3-4, 3-6, 7-5 INCE0 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 INCE1 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 INCE2 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 INCE3 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 INCE4 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 INCEn . . . . . . . . . . . . . . . . . . . . . . . . . 6-65 INT0 . . . . . . . . . . . . . . . . . . . . . . . 3-7, 7-18 INT1 . . . . . . . . . . . . . . . . . . . . . . . 3-7, 7-18 Interrupts . . . . . . . . . . . . . . . . . . 7-1 to 7-20 Entry sequence timing . . . . . . . . . . . 7-16 External interrupts . . . . . . . . . . . . . . 7-18 Handling procedure . . . . . . . . . . . . . 7-16 Registers . . . . . . . . . . . . . . . . 7-4 to 7-14 Request flags . . . . . . . . . . . . . . . . . . . 7-9 Response time . . . . . . . . . . . . . . . . . 7-20 Sources and vector addresses. . . . . 7-17 IP0 . . . . . . . . . . . . . . . . . . . . . 3-4, 3-7, 7-14 IP1 . . . . . . . . . . . . . . . . . . . . . . . . 3-4, 7-14 IT0 . . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-9 IT1 . . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-9 ITCON . . . . . . . . . . . . . . . . . . 3-4, 3-6, 7-19
G
GATE . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-16 GEPIE0 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 GEPIE1 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 GEPIE2 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 GEPIE3 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 GEPIE4 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 GEPIEn . . . . . . . . . . . . . . . . . . . . 6-64, 7-8 GEPIR . . . . . . . . . . . . . 3-5, 3-7, 6-56, 7-13 GF0 . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 9-2 GF1 . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 9-2
L
L06-L00 . . . . . . . . . . . . . . . . . . . . 3-8, 6-72 L16-L10 . . . . . . . . . . . . . . . . . . . . 3-8, 6-72 L26-L20 . . . . . . . . . . . . . . . . . . . . 3-9, 6-72 L36-L30 . . . . . . . . . . . . . . . . . . . . 3-9, 6-72 L46-L40 . . . . . . . . . . . . . . . . . . . . 3-9, 6-72 LED0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 LED1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 LED2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 Logic symbol . . . . . . . . . . . . . . . . . . . . . 1-3 LOOPB . . . . . . . . . . . . . . . . . . . . 3-6, 6-31 LSBSM. . . . . . . . . . . . . . . . . . . . . 3-6, 6-31
H
Hardware reset. . . . . . . . . . . . . . . . . . . . 5-1
M
M0 . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-16 M1 . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-16 Memory organization . . . . . . . . . . . . . . . 3-1 Data memory . . . . . . . . . . . . . . . . . . . 3-2 General purpose registers . . . . . . . . . 3-2 Memory map . . . . . . . . . . . . . . . . . . . 3-1 Program memory . . . . . . . . . . . . . . . . 3-2 MSTR. . . . . . . . . . . . . . . . . . . . . . 3-6, 6-27
I
I/O ports . . . . . . . . . . . . . . . . . . . 6-1 to 6-12 I0ETF . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-19 I0ETR . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-19 I1ETF . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-19 I1ETR . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-19 IDLE . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 9-2 IDLS . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 9-2 IE0 . . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 7-9
Semiconductor Group
12-3
1997-10-01
Index C540U / C541U
N
NACK0 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 NACK1 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 NACK2 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 NACK3 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 NACK4 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 NACKn . . . . . . . . . . . . . . . . . . . . 6-70, 7-12 NAIE0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 NAIE1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 NAIE2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 NAIE3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 NAIE4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 NAIEn . . . . . . . . . . . . . . . . . . . . . . 6-68, 7-7 NOD0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 NOD1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 NOD2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 NOD3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 NOD4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 NODIE0 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 NODIE1 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 NODIE2 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 NODIE3 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 NODIE4 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 NODIEn . . . . . . . . . . . . . . . . . . . . 6-68, 7-7 NODn . . . . . . . . . . . . . . . . . . . . . 6-70, 7-12
Programming mode . . . . . . . . . . . . . 10-1 Version byte access . . . . . . . . . . . . 10-12 OV . . . . . . . . . . . . . . . . . . . . . . . . . 2-3, 3-7 OWDS . . . . . . . . . . . . . . . . . . . . . . 3-7, 8-3
P
P . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3, 3-7 P0 . . . . . . . . . . . . . . . . . . . . . . . . . 3-4, 3-6 P1 . . . . . . . . . . . . . . . . . . . . . . . . . 3-4, 3-6 P2 . . . . . . . . . . . . . . . . . . . . . . . . . 3-4, 3-6 P3 . . . . . . . . . . . . . . . . . . . . . . . . . 3-4, 3-7 Package information P-LCC-44 package. . . . . . . . . . . . . 11-20 P-SDIP-52 package . . . . . . . . . . . . 11-21 PAGE0. . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 PAGE1. . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 PAGE2. . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 PAGE3. . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 PAGE4. . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 PAGEn. . . . . . . . . . . . . . . . . . . . . . . . . 6-72 Parallel I/O . . . . . . . . . . . . . . . . . 6-1 to 6-12 PCLK . . . . . . . . . . . . . . . . . . . . . . 3-8, 6-58 PCON . . . . . . . . . . . . . . . . . . . 3-5, 3-6, 9-2 PCON1 . . . . . . . . . . . . . . . . . . 3-5, 3-6, 9-2 PDE . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 9-2 PDS . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 9-2 Pin configuration . . . . . . . . . . . . . 1-4 to 1-5 P-LCC-44 package. . . . . . . . . . . . . . . 1-4 P-SDIP-52 package . . . . . . . . . . . . . . 1-5 Pin definitions and functions . . . . 1-6 to 1-9 Ports . . . . . . . . . . . . . . . . . . . . . 6-1 to 6-12 Alternate functions . . . . . . . . . . 6-8 to 6-9 Port loading and interfacing . . . . . . . 6-11 Port timing . . . . . . . . . . . . . . . . . . . . 6-10 Quasi-bidirectional port structure Output driver circuitry . . . . . . . . . . . 6-4 Port 0/2 as address/data bus . . . . . 6-7 Read-modify-write function . . . . . . . 6-12 Power saving modes . . . . . . . . . . 9-1 to 9-8 Behaviour of external pins . . . . . . . . . 9-3 Idle mode . . . . . . . . . . . . . . . . . 9-3 to 9-4 Power down mode . . . . . . . . . . 9-5 to 9-8 Entering . . . . . . . . . . . . . . . . . . . . . 9-6 External wake-up timing . . . . . . . . . 9-7 Functionality . . . . . . . . . . . . . . . . . . 9-5 Termination. . . . . . . . . . . . . . . . . . . 9-7 Power supply current . . . . . . . . . . . . . . 11-3 PSEN signal. . . . . . . . . . . . . . . . . . . . . . 4-3
O
Oscillator operation . . . . . . . . . . . 5-6 to 5-8 External clock source . . . . . . . . . . . . . 5-8 On-chip oscillator circuitry. . . . . . . . . . 5-8 Recommended oscillator circuit . . . . . 5-7 Oscillator watchdog . . . . . . . . . . . 8-5 to 8-7 Behaviour at reset. . . . . . . . . . . . . . . . 5-3 Block diagram . . . . . . . . . . . . . . . . . . . 8-6 OTP memory operation . . . . . 10-1 to 10-14 Access mode selection . . . . . . . . . . . 10-7 Basic prog. mode selection. . . . . . . . 10-6 Lock bit access . . . . . . . . . . . . . . . . 10-10 OTP memory protection levels . . . . 10-10 OTP protection Level 1 verifiy timimg. . . . . . . . . . 10-13 OTP verification example . . . . . . 10-14 Protection level 1. . . . . . . . . . . . . 10-13 Pin configuration P-LCC-44 package . . . . . . . . . . . . 10-2 P-SDIP-52 package . . . . . . . . . . . 10-3 Pin definitions and functions . . 10-4, 10-5 Program/read operation . . . . . 10-8, 10-9 Semiconductor Group 12-4
1997-10-01
Index C540U / C541U
PSSC . . . . . . . . . . . . . . . . . . . . . . 3-7, 7-14 PSW . . . . . . . . . . . . . . . . . . . . . 2-3, 3-4, 3-7 PT0. . . . . . . . . . . . . . . . . . . . . . . . 3-7, 7-14 PT1. . . . . . . . . . . . . . . . . . . . . . . . 3-7, 7-14 PUDI. . . . . . . . . . . . . . . . . . . . . . . 3-7, 7-14 PUEI . . . . . . . . . . . . . . . . . . . . . . . 3-7, 7-14 PX0. . . . . . . . . . . . . . . . . . . . . . . . 3-7, 7-14 PX1. . . . . . . . . . . . . . . . . . . . . . . . 3-7, 7-14
R
RD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 Recommended oscillator circuits . . . . 11-19 Reset . . . . . . . . . . . . . . . . . . . . . . 5-1 to 5-5 Fast power-on reset . . . . . . . . . . . . . . 5-3 Hardware reset timing. . . . . . . . . . . . . 5-5 of USB module . . . . . . . . . . . . . . . . . . 5-2 Power-on reset timing. . . . . . . . . . . . . 5-4 Reset circuitries . . . . . . . . . . . . . . . . . 5-2 RLE0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 RLE1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 RLE2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 RLE3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 RLE4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 RLEIE0 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 RLEIE1 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 RLEIE2 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 RLEIE3 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 RLEIE4 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 RLEIEn . . . . . . . . . . . . . . . . . . . . . 6-68, 7-7 RLEn . . . . . . . . . . . . . . . . . . . . . 6-70, 7-12 RMAP . . . . . . . . . . . . . . . . . . . . . . . 3-3, 3-7 RPWD . . . . . . . . . . . . . . . . . . . . . 3-8, 6-59 RS0 . . . . . . . . . . . . . . . . . . . . . . . . 2-3, 3-7 RS1 . . . . . . . . . . . . . . . . . . . . . . . . 2-3, 3-7 RSM . . . . . . . . . . . . . . . . . . . . . . . 3-8, 6-58
S
SBI . . . . . . . . . . . . . . . . . . . . 3-8, 6-62, 7-11 SBIE . . . . . . . . . . . . . . . . . . . . 3-8, 6-60, 7-6 SCEN . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-27 SCF . . . . . . . . . . . . . . . 3-4, 3-6, 6-30, 7-10 SCIEN . . . . . . . . . . . . . . 3-4, 3-7, 6-29, 7-5 SCLK . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-21 SE0I . . . . . . . . . . . . . . . . . . . 3-8, 6-62, 7-11 SE0IE . . . . . . . . . . . . . . . . . . . 3-8, 6-60, 7-6 SEI . . . . . . . . . . . . . . . . . . . . 3-8, 6-62, 7-11 SEIE . . . . . . . . . . . . . . . . . . . . 3-8, 6-60, 7-6 SETRD0 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 SETRD1 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 Semiconductor Group 12-5
SETRD2. . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SETRD3. . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SETRD4. . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SETRDn. . . . . . . . . . . . . . . . . . . . . . . . 6-66 SETWR0 . . . . . . . . . . . . . . . . . . . . . . . . 3-8 SETWR1 . . . . . . . . . . . . . . . . . . . . . . . . 3-8 SETWR2 . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SETWR3 . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SETWR4 . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SETWRn . . . . . . . . . . . . . . . . . . . . . . . 6-67 SLS . . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-21 SOD0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 SOD1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 SOD2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SOD3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SOD4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SODIE0 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 SODIE1 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 SODIE2 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SODIE3 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SODIE4 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SODIEn . . . . . . . . . . . . . . . . . . . . 6-69, 7-7 SODn . . . . . . . . . . . . . . . . . . . . . 6-71, 7-12 SOFDE0 . . . . . . . . . . . . . . . . . . . . . . . . 3-8 SOFDE1 . . . . . . . . . . . . . . . . . . . . . . . . 3-8 SOFDE2 . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SOFDE3 . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SOFDE4 . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SOFDEn . . . . . . . . . . . . . . . . . . . . . . . 6-64 SOFI . . . . . . . . . . . . . . . . . . 3-8, 6-62, 7-11 SOFIE . . . . . . . . . . . . . . . . . . 3-8, 6-61, 7-6 SP . . . . . . . . . . . . . . . . . . . . . . 2-3, 3-4, 3-6 Special Function Registers . . . . . . . . . . 3-3 Access with RMAP. . . . . . . . . . . . . . . 3-3 Table - address ordered. . . . . . 3-6 to 3-9 Table - functional order . . . . . . 3-4 to 3-5 SPEED. . . . . . . . . . . . . . . . . . . . . 3-8, 6-57 SRB . . . . . . . . . . . . . . . . . . . . 3-4, 3-6, 6-31 SRI. . . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-21 SSC interface. . . . . . . . . . . . . . 6-21 to 6-31 Baudrate generation. . . . . . . . . . . . . 6-23 Block diagram . . . . . . . . . . . . . . . . . 6-21 General operation . . . . . . . . . . . . . . 6-22 Master mode timing . . . . . . . . . . . . . 6-25 Master/slave mode. . . . . . . . . . . . . . 6-24 Registers . . . . . . . . . . . . . . . 6-27 to 6-31 Slave mode timing . . . . . . . . . . . . . . 6-26
1997-10-01
Index C540U / C541U
Write collision detection . . . . . . . . . . 6-23 SSCCON . . . . . . . . . . . . . . . . 3-4, 3-6, 6-27 SSCMOD . . . . . . . . . . . . . . . . 3-4, 3-6, 6-31 STALL0 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 STALL1 . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 STALL2 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 STALL3 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 STALL4 . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 STALLn . . . . . . . . . . . . . . . . . . . . . . . . 6-64 STB . . . . . . . . . . . . . . . . . . . . 3-4, 3-6, 6-31 STI . . . . . . . . . . . . . . . . . . . . 3-8, 6-62, 7-11 STIE . . . . . . . . . . . . . . . . . . . . 3-8, 6-60, 7-6 STO . . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-21 SUI . . . . . . . . . . . . . . . . . . . . 3-8, 6-62, 7-11 SUIE . . . . . . . . . . . . . . . . . . . . 3-8, 6-61, 7-6 SUSP . . . . . . . . . . . . . . . . . . . . . . 3-8, 6-57 SWDT. . . . . . . . . . . . . . . . . . . . . . . 3-7, 8-3 SWR . . . . . . . . . . . . . . . . . . . . . . . 3-8, 6-57 SYSCON . . . . . . . . . . . . . 3-3, 3-4, 3-7, 4-4
SSC timing . . . . . . . . . . . . . . . . . . . 11-10 Version byte access timing . . . . . . 11-15 TL0. . . . . . . . . . . . . . . . . . . . . 3-4, 3-6, 6-14 TL1. . . . . . . . . . . . . . . . . . . . . 3-4, 3-6, 6-14 TMOD . . . . . . . . . . . . . . . . . . 3-4, 3-6, 6-16 TPWD . . . . . . . . . . . . . . . . . . . . . 3-8, 6-59 TR0 . . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-15 TR1 . . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-15 TRIO . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-31
U
UBF0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 UBF1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 UBF2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 UBF3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 UBF4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 UBFn . . . . . . . . . . . . . . . . . . . . . . . . . . 6-66 UCLK . . . . . . . . . . . . . . . . . . . . . . 3-8, 6-58 USB module. . . . . . . . . . . . . . . 6-32 to 6-75 Block diagram . . . . . . . . . . . . . . . . . 6-32 Control transfer . . . . . . . . . . . . . . . . 6-51 Detach/attach detection . . . . . . . . . . 6-76 Detection of connected devices . . . . 6-75 Device registers . . . . . . . . . . 6-57 to 6-63 Endpoint registers . . . . . . . . 6-64 to 6-72 Global registers . . . . . . . . . . 6-53 to 6-56 Initialization . . . . . . . . . . . . . . . . . . . 6-49 Memory buffer address generation . 6-48 Memory buffer modes . . . . . 6-34 to 6-46 Double buffer mode . . . . . 6-40 to 6-46 Single buffer mode . . . . . . 6-35 to 6-39 Memory buffer organization . . . . . . . 6-47 On-chip USB transceiver . . . . . . . . . 6-73 Register set . . . . . . . . . . . . . 6-52 to 6-72 Transfer modes . . . . . . . . . . . . . . . . 6-33 USBVAL. . . . . . . . . . . . . . . . . 3-5, 3-7, 6-54
T
T0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 T1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 TC. . . . . . . . . . . . . . . . . . . . . 3-6, 6-30, 7-10 TCEN . . . . . . . . . . . . . . . . . . . 3-7, 6-29, 7-5 TCON . . . . . . . . . . . . . . . 3-4, 3-6, 6-15, 7-9 TEN . . . . . . . . . . . . . . . . . . . . . . . 3-6, 6-27 TF0 . . . . . . . . . . . . . . . . . . . . . 3-6, 6-15, 7-9 TF1 . . . . . . . . . . . . . . . . . . . . . 3-6, 6-15, 7-9 TH0. . . . . . . . . . . . . . . . . . . . . 3-4, 3-6, 6-14 TH1. . . . . . . . . . . . . . . . . . . . . 3-4, 3-6, 6-14 Timer/counter . . . . . . . . . . . . . . . . . . . . 6-13 Timer/counter 0 and 1. . . . . . 6-13 to 6-20 Mode 0, 13-bit timer/counter . . . . . 6-17 Mode 1, 16-bit timer/counter . . . . . 6-18 Mode 2, 8-bit rel. timer/counter . . . 6-19 Mode 3, two 8-bit timer/counter. . . 6-20 Registers . . . . . . . . . . . . . . 6-14 to 6-16 Timings Data memory read cycle. . . . . . . . . . 11-8 Data memory write cycle . . . . . . . . . 11-9 External clock timing. . . . . . . . . . . . . 11-9 Lock bit access timing. . . . . . . . . . . 11-15 Program memory read cycle. . . . . . . 11-7 Programming mode read cycle. . . . 11-14 Programming mode write cycle . . . 11-13 Protected ROM/OTP verify timing . 11-16 ROM verification mode 2 . . . . . . . . 11-16
V
Version bytes . . . . . . . . . . . . . . . . . . . 10-12 Version registers . . . . . . . . . . . . . . . . 10-12 VR0 . . . . . . . . . . . . . . . . . . . 3-4, 3-7, 10-12 VR1 . . . . . . . . . . . . . . . . . . . 3-4, 3-7, 10-12 VR2 . . . . . . . . . . . . . . . . . . . 3-4, 3-7, 10-12
W
Watchdog timer . . . . . . . . . . . . . . 8-1 to 8-4 Block diagram . . . . . . . . . . . . . . . . . . 8-1 Control/status flags . . . . . . . . . . . . . . 8-3 Input clock selection. . . . . . . . . . . . . . 8-2
Semiconductor Group
12-6
1997-10-01
Index C540U / C541U
Refreshing of the WDT . . . . . . . . . . . . 8-4 Reset operation . . . . . . . . . . . . . . . . . 8-4 Starting of the WDT . . . . . . . . . . . . . . 8-4 Time-out periods. . . . . . . . . . . . . . . . . 8-2 WCEN . . . . . . . . . . . . . . . . . . 3-7, 6-29, 7-5 WCOL. . . . . . . . . . . . . . . . . . 3-6, 6-30, 7-10 WDCON . . . . . . . . . . . . . . . . . . 3-4, 3-7, 8-3 WDT . . . . . . . . . . . . . . . . . . . . . . . . 3-7, 8-3 WDTPSEL . . . . . . . . . . . . . . . . . . . 3-6, 8-2 WDTREL . . . . . . . . . . . . . . . . . 3-4, 3-6, 8-2 WDTS. . . . . . . . . . . . . . . . . . . . . . . 3-7, 8-3 WR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 WS . . . . . . . . . . . . . . . . . . . . . . . . . 3-6, 9-2
Semiconductor Group
12-7
1997-10-01


▲Up To Search▲   

 
Price & Availability of C540U1

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X